将字符串放在单引号中意味着什么?

时间:2017-06-16 23:57:00

标签: bash

VALUE1=123
VALUE2=456
S_ID=123456789
G_ID=34634

/opt/customtools/custom_cmd -a -g $G_ID -m custom -c '=value9 $S_ID $VALUE1 $VALUE2'

之前从未使用过bash脚本,我现在正在查看一些代码并且我已经发现了这一点,并且出于某种原因我无法在互联网上的任何地方找到描述该行结尾的内容(' = value9 ...部分)。 CONCATENATE?加?请指教。

2 个答案:

答案 0 :(得分:1)

单引号内的内容是文字的 - 在调用正在运行的程序之前,shell不会以任何方式对其进行修改。

因此,=value9 $S_ID $VALUE1 $VALUE2被传递给正在运行的命令完全按原样(没有$VALUE1123替换而没有$VALUE2456替换;那么,它的含义取决于该命令如何解释它。

答案 1 :(得分:0)

' ' - 压制所有扩展 " " - 抑制所有扩展,但参数扩展,命令替换和算术扩展。基本上$`\用双引号扩展而且!如果启用了历史记录。在双引号中@ *也有特殊含义(查看参数扩展以获取更多详细信息)。