简体   繁体   中英

How to print shell escaped string in shell?

I am writing a shell program to output another shell program to be evalled later. Is there some common shell program to print shell escaped for a string?

I'm not sure I understand you question. But the %q option of printf might be what you are looking for.

%q Output the corresponding argument in a format that can be reused as shell input

printf %q 'C:\ProgramFiles is a Windows path;'

outputs C:\\\\ProgramFiles\\ is\\ a\\ Windows\\ path\\;

(In this example, simple quotes are needed – comment of Gordon Davisson – but this doesn't matter if you print from a variable or the output of a command.)

You could use single quoted string as this is evaluated without any substitution.
For example the following commands are equivalent

cat abc\ hi.txt
cat 'abc hi.txt'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM