質問: スクリプトに$ "dollar sign-prefix string"があるとはどういう意味ですか? 私はちょうどこれをinitスクリプトで見ました:echo $"stopping apache" そのドル記号は何ですか?これまでの私の研究:私はこれをbashのマニュアルで見つけました: extquote 設定されている場合、$'string'および$"string"の引用は、二重引用符で囲まれた${parameter}の展開内で実行されます。このオプションはデフォルトで有効になっています。 ...しかし$プレフィックスがある場合とない場合の文字列の違いは見つかりません:$ echo "i am in $pwd" i am in /var/shared/home/southworth/qed $ echo $"i am in $pwd" i am in /var/shared/home/southworth/qed $ echo $"i am in ${pwd}" i am in /var/shared/home/southworth/qed $ echo "i am in ${pwd}" i am in /var/shared/home/southworth/qed $ echo 'i am in ${pwd}' i am in ${pwd} $ echo $'i am in ${pwd}' i am in ${pwd} $ echo $'i am in $pwd' i am in $pwd
回答: 文字列が$''内で展開されると、エスケープシーケンスが解釈されます。マンページから: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はオプションを指定せずにエスケープシーケンスを解釈する場合があるため、他のシェルでは異なる結果が得られる場合があります。