コマンドが成功したことを確認するLinuxシェルスクリプト

コマンドが成功したことを確認するLinuxシェルスクリプト

実行されたコマンドが成功したかどうかを確認する必要があります。 test.shに次のコードを入れて実行しましたが、内容は一覧表示されますが/home警告が表示されます。

./test.sh: 3: ./test.sh: [[: not found

次のコマンドの問題

#!/bin/sh
ls /home/
if [[ "$?" != 0 ]]; then
echo "Commnad Error"
else
echo "Commnad Success"
fi

答え1

エラーによると:

./test.sh: 3: ./test.sh: [[: not found

あなたのものはbashとは関係/bin/shありません。単一の角かっこを使用するか、コマンドのみを使用してください。数値条件にも使用できます。特定のケースには効果がありますが、これは悪い習慣です。bash[[[test
-ne!=

答え2

エラーが検出されましたif [[ "$?" != 0 ]]; then

数値比較は使用されるのではなく、!=使用する-ne必要があります。

数値比較のためにここを読んでください

また、最後に実行されたコマンドの終了コード状態の正しい構文には$?引用符がありません。

if [[ $? -ne 0 ]]; then

答え3

私はあなたがそのような警告を使用できるので、スクリプトを実行するためにdash使用していると思います。/bin/shlinkbash#!/bin/bash

答え4

ダッシュはあり[[ません[。しかし、あるとしても選ぶ[理由があります。 (電子はより直接的で速く、パターンの欠陥に適応することができます)。if your_commandyour_command; if [ $? = 0 ]set -e

関連情報