if $( ssh user@host " [ -e file ] " ) の "if $" とはどういう意味ですか?それから…​​?

if $( ssh user@host

スクリプトのステートメントでは、条件がifaを使用しているのを見ますが、$ その理由を理解できません。

if $( ssh user@host " test -e file  " ); then 
   echo "File is there"
else
   echo "We don't that file on that host"
fi

ベストアンサー1

$(...)コマンドの置換です。シェルは埋め込みコマンドを実行し、式はコマンドの標準出力に置き換えられます。

通常、代替テキストにシェルが後で実行できるコマンドの名前が指定されていない場合、エラーが生成されます。ただし、test出力は生成されないため、結果はシェルが「スキップする」空の文字列です。たとえば、次を実行するとどうなるか考えてみましょう。

if $( ssh user@host " echo foo " ); then 
   echo "File is there"
else
   echo "We don't that file on that host"
fi

与えられたコードは、不要なコマンドの置き換えなしで正しく書かれています。ifステートメントに必要な唯一のものは、コマンドの終了状態です。

if ssh user@host "test -e file"; then 
   echo "File is there"
else
   echo "We don't that file on that host"
fi

おすすめ記事