我想传递一个字符串
"('a','a');('a','!a');('a', '!d');('b', '!e');('c','a')"
从命令行。但我收到一个错误:
-bash: syntax error near unexpected token '(\'
有没有办法,如何在不添加终端符号的情况下避免这种情况?(可能会指定一个标志)
另外,将\
括号括起来并没有帮助 - 我应该在哪些字符前加上' \'在没有空格的字符串中?
答案 0 :(得分:0)
Bash不会解释单引号内的字符串,所以如果你可以切换:
"('a','a');('a','!a');"
的
'("a","a");("a","!a");'
后面单引号内的双引号将起作用,你不必看着令人讨厌的逃脱。
答案 1 :(得分:0)
你可以使用ANSI-C quoting,但它看起来像地狱:
$ echo "('a','a');('a','!a');('a', '!d');('b', '!e');('c','a')"
bash: !a': event not found
$ echo $'(\'a\',\'a\');(\'a\',\'!a\');(\'a\', \'!d\');(\'b\', \'!e\');(\'c\',\'a\')'
('a','a');('a','!a');('a', '!d');('b', '!e');('c','a')