Mat*_*hew 217 bash syntax escape-characters
我想做类似的事情bzr commit -m "It works!"
。我可以通过这样做来逃避感叹号bzr commit -m "It works\!"
。但是,我的提交消息包含反斜杠。如何在忽略反斜杠的同时避开感叹号?
Ben*_*ier 193
由于您不依赖 bash 来扩展提交消息中的变量,因此您可以改用单引号。单引号中的字符串不会被 bash 扩展。
bzr commit -m 'This does work!'
Run Code Online (Sandbox Code Playgroud)
jwd*_*jwd 172
如果您想要双引号和感叹号,这是另一种方法:
echo "It's broken"'!'
Run Code Online (Sandbox Code Playgroud)
即使!
不在行尾,这也有效。
例如:
echo "hello there"'!'" and goodbye"
Run Code Online (Sandbox Code Playgroud)
奖励:类似的技术可用于转义Sh 或 Bash 中的任何文本(在 sed 的帮助下):请参阅此答案中的第一个选项。此外,如果您已经bash-completion
安装,您可能已经拥有可用的quote()
功能。
Den*_*son 73
关闭历史扩展:
set +H
Run Code Online (Sandbox Code Playgroud)
或者
set +o histexpand
Run Code Online (Sandbox Code Playgroud)
~/.bashrc
如果您通常不使用历史扩展,则可以将这些命令之一添加到您的命令中。
Bash 4.3 添加了一个特例:
如果历史扩展字符紧跟在双引号字符串中的结束双引号之前,它也被视为带引号
Kei*_*thB 13
使用单引号 (') 而不是双引号 (")。单引号关闭对其中内容的所有解释,而双引号仅关闭一些。
bzr commit -m 'It works!'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
122361 次 |
最近记录: |