aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/makefile_escaping/escaping_shell.mk
diff options
context:
space:
mode:
Diffstat (limited to 'makefile_escaping/escaping_shell.mk')
-rw-r--r--makefile_escaping/escaping_shell.mk21
1 files changed, 21 insertions, 0 deletions
diff --git a/makefile_escaping/escaping_shell.mk b/makefile_escaping/escaping_shell.mk
new file mode 100644
index 0000000..23f8f30
--- /dev/null
+++ b/makefile_escaping/escaping_shell.mk
@@ -0,0 +1,21 @@
+escape = $(subst ','\'',$(1))
+
+cwd := $(shell basename -- "$$( pwd )")
+export cwd
+
+inner_var := Inner variable
+outer_var := Outer variable - $(inner_var) - $(cwd)
+
+echo_cwd := printf '%s\n' '$(call escape,$(cwd))'
+bash_cwd := bash -c '$(call escape,$(echo_cwd))'
+
+echo_outer_var := printf '%s\n' '$(call escape,$(outer_var))'
+
+.PHONY: test
+test:
+ @printf '%s\n' '$(call escape,$(cwd))'
+ @printf '%s\n' "$$cwd"
+ @bash -c '$(call escape,$(echo_cwd))'
+ @bash -c '$(call escape,$(bash_cwd))'
+ @printf '%s\n' '$(call escape,$(outer_var))'
+ @bash -c '$(call escape,$(echo_outer_var))'