コマンド変数に基づいてifステートメントを実行しようとしています。たとえば、次のようになります。
ssh_location=$(which ssh)
私の問題は、これを保存したいということですただシステムに存在する場合は、さらに処理するためにバイナリを使用できます。それ以外の場合は、エラー文字列をエコーしたいと思います。これは私が運なく試みることです。
if ["$ssh_location"] ; then
echo "it exists"
else
echo "does not exist"
fi
次のエラーメッセージが表示され続けます。
./test.sh: line 6: [/usr/local/bin/ssh]: No such file or directory
does not exist
(確かに存在します)。
ベストアンサー1
["$ssh_location"]
ファイルが存在することを確認する代わりに、存在しないパスを使用してコマンドを実行しようとします。
ファイルが存在することを確認する構文は次のとおりです。
if [ -f "$ssh_location" ]
括弧内にスペースはありません(はい、必須です)-f
。それ以外の場合は、-f
コマンドの戻りコードを評価しますssh
。