我试图在macos上调试bash脚本。脚本的业务端只是:
$JAVA_COMMAND $CLASS $*命令行包括/a/b/d/*,其中/a/b/d中的文件以阿拉伯语命名。
当我使用sh -x运行时,每个文件都被回显为$'/a/b/c/thearabic‘
$大会是从哪里来的,它意味着什么?
发布于 2011-04-28 23:03:31
在Bash手册页面中:
格式$'string‘的单词将被特别处理。单词展开为字符串,反斜杠转义字符替换为ANSI C标准指定的字符。如果存在反斜杠转义序列,则按以下方式解码: ..。 扩大的结果是单引号,好像美元符号还没有出现一样。在美元符号($)前面加上双引号的字符串将导致字符串根据当前区域设置进行转换。如果当前区域设置为C或POSIX,则忽略美元符号。如果字符串被转换和替换,则替换为双引号。
手册页
https://stackoverflow.com/questions/5825968
复制相似问题