echo 双引号

sinat_35134692 2017-07-29 10:08:09
echo "Hello World !"
感叹号是命令,所以需要用\转义
echo “Hello World \!”
但是输出是
Hello World \!
这是什么原因呢?求解答
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_35134692 2017-08-01
  • 打赏
  • 举报
回复
非常感谢回答
引用 3 楼 rumengjian 的回复:
由于!在shell里为特殊字符,可以作为调用history历史记录来使用执行某行内容,如!23调用history中的第23条命令,也可以在表达式中表示非的意思。 同时,由于双引号内的内容会被解析,所以!就被解析了,加上\也达不到要的效果。 所以要么用单引号,要么在!前后面都加上一个空格。 echo "Hello world ! " echo 'Hello world !' 单引号、双引号和无引号的区别 (1)单引号 所见即所得,将单引号内的所有内容都不解析,原样输出。 (2)双引号 输出比引号中的所有内容。如果引号中有命令(反引号中)、变量、特殊转义符等,就会先解析变量,将解析结果输出到最终内容中。 (3)无引号 类似于双引号,把解析结果输出到最终内容中,但如果字符串中带有空格等特殊字符,则不能完整的输出,需要加上双引号。
放飞的心灵 2017-07-31
  • 打赏
  • 举报
回复
由于!在shell里为特殊字符,可以作为调用history历史记录来使用执行某行内容,如!23调用history中的第23条命令,也可以在表达式中表示非的意思。 同时,由于双引号内的内容会被解析,所以!就被解析了,加上\也达不到要的效果。 所以要么用单引号,要么在!前后面都加上一个空格。 echo "Hello world ! " echo 'Hello world !' 单引号、双引号和无引号的区别 (1)单引号 所见即所得,将单引号内的所有内容都不解析,原样输出。 (2)双引号 输出比引号中的所有内容。如果引号中有命令(反引号中)、变量、特殊转义符等,就会先解析变量,将解析结果输出到最终内容中。 (3)无引号 类似于双引号,把解析结果输出到最终内容中,但如果字符串中带有空格等特殊字符,则不能完整的输出,需要加上双引号。
sinat_35865431 2017-07-29
  • 打赏
  • 举报
回复
echo 'hello word ! '
你完整粘贴我的代码试试
sinat_35865431 2017-07-29
  • 打赏
  • 举报
回复
echo 'hello ! '

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧