bash脚本中不熟悉的引用约定

时间:2011-04-28 22:55:33

标签: bash

我正在尝试在macos上调试bash脚本。脚本的业务端只是:

$JAVA_COMMAND $CLASS $*

命令行包括/ a / b / d / *,其中/ a / b / d中的文件名称为阿拉伯语

当我使用sh -x运行时,每个文件都回显为$'/ a / b / c / thearabic '

$'约定来自哪里,它意味着什么?

1 个答案:

答案 0 :(得分:2)

来自Bash手册页:

  

$'string'形式的单词是   特别待遇。这个词扩展到了   字符串,反斜杠转义   字符替换为   ANSI C标准。反斜杠逃脱   序列(如果存在)被解码为   如下:

     

...

     

展开的结果是单引号,   好像美元符号没有   当下。双引号字符串   之前是美元符号($)将   导致字符串被翻译   根据当前的区域设置。如果   当前的语言环境是C或POSIX ,.   美元符号被忽略。如果是字符串   被翻译和替换,   替换是双引号。

man page