【发布时间】:2015-11-29 08:48:03
【问题描述】:
当将! 符号放在双引号字符串中时,我不知道如何在 bash 脚本中编写它。
例如:
var="hello! my name is $name! bye!"
发生了一些疯狂的事情:
Boda-Cydo-Sith-Computer:~$ age=20
Boda-Cydo-Sith-Computer:~$ name='boda'
Boda-Cydo-Sith-Computer:~$ var="hello! my name is $name! bye!"
当我在最后一个命令中按回车键时,命令会重复自身(输入自身)而没有最后一个 !:
Boda-Cydo-Sith-Computer:~$ var="hello! my name is $name! bye"
如果我再按回车键
Boda-Cydo-Sith-Computer:~$ var="hello! my name is $name bye"
如果我再次按回车,它就会消失,没有任何输出
Boda-Cydo-Sith-Computer:~$
如果我试试这个:
Boda-Cydo-Sith-Computer:~$ echo "hello\! my name is $name\! bye\!"
然后输出:hello\! my name is boda\! bye\!
如果我使用单引号,那么我的名字不会被扩展:
Boda-Cydo-Sith-Computer:~$ echo 'hello! my name is $name! bye!'
输出为:hello! my name is $name! bye!
我是这样工作的:
Boda-Cydo-Sith-Computer:~$ echo "hello"'!'" my name is $name"'!'" bye"'!'
但是" 和' 是一大混乱,无法理解/编辑/维护/更新。
谁能帮忙?
【问题讨论】:
-
它在这里工作......你用它做什么?
-
您当然可以解释您键入的命令并将结果复制并粘贴到此处。
-
大家好,我更新了我的问题 + 赞成您的答案以寻求帮助:)
-
您使用的是 Mac OS X 吗?如果是这样,历史扩展可能会进行。尝试
set +o histexpand禁用它。 -
重复:unix.stackexchange.com/q/246170/4667 和 superuser.com/q/1006777/4714 -- 不要将同一个问题发布到多个站点
标签: linux string bash shell unix