任何人都可以解释有什么区别
echo $"Starting $CMD"
Run Code Online (Sandbox Code Playgroud)
和
echo "String $CMD"
Run Code Online (Sandbox Code Playgroud)
他们似乎看起来一样.
查看手册页的QUOTING部分bash:
表格的字
$'string'是特别对待的.单词扩展为字符串,替换为ANSI C标准指定的反斜杠转义字符.反斜杠转义序列(如果存在)按如下方式解码:
- 警报(铃声)
- \ b退格
- \ e逃脱角色
- \ f表格饲料
- \n新行
- \ r \n回车
- \ t水平标签
- \ v垂直标签
- \反斜杠
- 单引号
- \nnn八位字符,其值为八进制值nnn(一到三位数)
- \ xHH八位字符,其值为十六进制值HH(一个或两个十六进制数字)
- \ cx是control-x字符
扩展结果是单引号,好像美元符号不存在一样.
并注意以下描述双引号字符串前面带$($"string"):
带有美元符号($)的双引号字符串将导致根据当前语言环境转换字符串.如果当前区域设置为C或POSIX,则忽略美元符号.如果翻译并替换字符串,则替换为双引号.
| 归档时间: |
|
| 查看次数: |
6372 次 |
| 最近记录: |