백틱 및 큰따옴표

백틱 및 큰따옴표

この質問について長い間考えてきましたが、まだ確認する方法がわかりません。

これは:

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 ')'
`                              )

おすすめ記事