この質問について長い間考えてきましたが、まだ確認する方法がわかりません。
これは:
x=`command -v r2g`
これと同じ:
x="$(command -v r2g)"
それでも次のようになります。
x=$(command -v r2g)
...後者の場合、この方法で解決する必要がありますか?
x="`command -v r2g`"
ベストアンサー1
すべての例は、コマンド置換による変数の割り当てなので、同じです。 ~によるとザイルズ答えは、変数の割り当ての右側に単語の区切りが発生しないため、参照は必要ありません。それでは、4つすべて大丈夫です。
그들이 독립적인 경우, 즉 직장에 있지 않은 경우에는 참조가 필요합니다. 역따옴표에 비해 이 형식 의 장점 $(...)
은 따옴표가 여러 줄에 걸쳐 중첩되고 분할될 수 있다는 점입니다. 이것이 바로 현재 이 형식이 일반적으로 선호되는 이유입니다. 즉, 이 형식을 사용하여 단어 분리 및 파일 이름 글로빙으로부터 내부 및 외부 확장을 "$( echo "$var" )"
모두 보호 할 수 있습니다.$var
$(...)
그림에서 알 수 있듯이POSIX 쉘 명령 언어사양에 따르면 포함된 여러 줄 스크립트는 백틱(왼쪽)을 사용할 수 없지만 $()
형식(오른쪽)은 사용할 수 있습니다.
echo ` echo $(
cat <<\eof cat <<\eof
a here-doc with ` a here-doc with )
eof eof
` )
echo ` echo $(
echo abc # a comment with ` echo abc # a comment with )
` )
echo ` echo $(
echo '`' echo ')'
` )