diff options
Diffstat (limited to 'makefile_escaping/escaping_shell.mk')
-rw-r--r-- | makefile_escaping/escaping_shell.mk | 21 |
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))' |