1. ホーム
  2. バッシュ

[解決済み】Bashの条件式で「何もしない」を意味するコマンドは?

2022-04-02 04:45:35

質問

条件文を作るときに、何もしないコードが必要なことがあります。例えば、次のような場合、Bashは何もしないようにしたいのです。 $a が "10" より大きい場合、 "1" を表示します。 $a が "5" より小さい場合は、 "2" と表示します。

if [ "$a" -ge 10 ]
then
elif [ "$a" -le 5 ]
then
    echo "1"
else
    echo "2"
fi

しかし、これはエラーになります。何もせず、スクリプトが遅くならないようなコマンドはないでしょうか?

解決方法は?

シェルの no-op コマンドは : (コロン)です。

if [ "$a" -ge 10 ]
then
    :
elif [ "$a" -le 5 ]
then
    echo "1"
else
    echo "2"
fi

から バッシュマニュアル :

: (コロン)

引数を展開し、リダイレクションを実行する以上のことはしない。戻り値は0である。