echo $"Stopping Apache"
那美元符号是做什么用的? >
extquote
如果设置,则在双引号内的
$'string'
扩展内执行$"string"
和${parameter}
报价。默认情况下,此选项处于启用状态。...但是我没有发现带有和不带有
$
前缀的字符串之间的任何区别: />#1 楼
bash
手册中记录了两种不同的情况$'
美元符号单引号是一种特殊的引号形式:
ANSI C引用
$'string'形式的单词经过特殊处理。该单词扩展为字符串,并按ANSI C标准的规定替换反斜杠转义的字符。
$“
美元符号双引号用于本地化:
双引号字符串前面加一个美元符号('$')将导致该字符串根据当前语言环境进行翻译。如果当前语言环境为C或POSIX,则忽略美元符号。如果字符串已翻译和替换,替换将被双引号。
#2 楼
当在$''
内扩展字符串时,将解释转义序列。在联机帮助页上:Words of the form $'string' are treated specially. The word expands to
string, with backslash-escaped characters replaced as specified by the
ANSI C standard.
一个简单的示例是换行符的\ n转义序列:
$ echo 'foo\n'
foo\n
$ echo $'foo\n'
foo
$
注意:由于
echo
可能在不提供选项的情况下解释转义序列,因此在其他shell中可能会得到不同的结果。#3 楼
您误解了手册。您只会在${parameter}
扩展内的$引号字符串中看到一种效果。 /archive/html/bug-bash/2005-10/msg00017.html 评论
这不能回答问题:$“…”是不同的东西。
–吉尔斯'所以-不再是邪恶的'
2012年9月13日23:55
抱歉,您的答案是错误的:无需使用$ {}扩展来使用ANSI引用。检查自己:echo $'ab \ ncd'
–rozcietrzewiacz
2012年9月14日在7:04
我认为这个答案试图错误地解释引号,而不是问题在问什么。
– jw013
2012年9月14日14:48
“ $ {...}”与$“ ...”不同
–吉普赛宇航员
17年7月27日在22:13
评论
根据问题,没有提到$“ ...”。
– Peter.O
2012年9月14日7:05