今日私は実行すると、次のことがわかりました。
ldd `which bash`
期待される結果を得る。しかし、私が走るとき
ldd 'which bash'
エラーが発生しました。./which bash: No such file or directory.
それでは、このように見える2つのシンボルの違いは何ですか?
答え1
「名前が付けられたバックティック、評価コマンド。
バックティックは、以前のスタイルのコマンド置換に使用されます。
foo=`command`
これ
foo=$(command)
代わりに構文を使用することをお勧めします。内部バックスラッシュ処理は$()
驚くべきことではなく、$()
入れ子にするのが簡単です。
バラよりhttp://mywiki.wooledge.org/BashFAQ/082
一重引用符 'は、文字列のシェル拡張を防ぐために使用されます。
シェルから正しく引用する方法を学ぶことは非常に重要です。
スペース/メタ文字を含むすべてのリテラルは「二重引用符」として扱われます。すべて拡張:
"$var"
、、、、。"$(command "$var")"
コードやテキストについてはを参照してください。"${array[@]}"
"a & b"
'single quotes'
$'s: 'Costs $5 US'
ssh host 'echo "$HOSTNAME"'
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
いつ二重引用符が必要ですか?