if - 条件が真のときコマンドを実行する

スポンサーリンク

ifコマンドは条件分岐のコマンドで基本的なコマンドになります。Bashでのifコマンドはthenのキーワードが必要なことを忘れないようにしたいです。

文字列のパターンでの分岐のような条件分岐を記述する場合は、caseコマンドを利用したほうが良い場合もあります。

case - 複数の条件分岐を行う
caseコマンドはある文字列に対して、パターンマッチを行っていき、コマンドの処理を分岐できます。ファイルの拡張子によってコマンドの実行を分けたい場合やそれぞれ特定のファイル名ごとに処理の実行を分けたい場合に利用できます。

ifコマンドと一緒によく利用するコマンドとしてtestコマンドがあります。

test - ファイルチェック・値の比較をする
testコマンドは、[]コマンドという別の形を持つコマンドです。条件分岐として使用することができるため、シェルスクリプトを作成するときなどでとても便利なコマンドです。使用用途は幅広く、ぜひ覚えておきたいLinuxコマンドです。

スポンサーリンク

ifの構文

ifコマンドの基本的な構文

 

シェルスクリプトで記述する場合は以下のような形式で見られます。

 

 

 

ifコマンドの利用例

ifコマンドは条件を判定し、条件の判定によってコマンドの制御を分岐させることができます。条件が判定する終了ステータスの値が、0のときは真で、0以外のときは偽になります。条件によく利用されるコマンドとして[コマンド(testコマンド)が利用されます。

また、数値のチェックとして((...))のような算術式を評価する構文も利用できます。これは評価した式の値が0のときは1(偽)を返し、0以外の場合は0(真)を返します。

if.sh

実行結果

 

${#var}は変数に格納されている文字列の文字数を表示できます。

 

if2.sh

実行結果

 

${var:-word}は変数varが未設定またはnullの場合は値がwordになり、それ以外は変数varの値になります。
変数の代入とともにコマンドの実行を行うとそのコマンドに対して、その変数が環境変数として追加されます。

 

 

 

参考

GNU Bash manual