シェルスクリプトのif文

シェルスクリプトには他言語同様 if 文があります。

シェルスクリプトで if 文を使う時、シェルスクリプトの条件判断のtestコマンドについて1で触れました test コマンドを使用します。


サンプルコードとして、任意のファイル(hello.txt)がある場合はnew.txtファイルを生成するという処理を書いてみます。

※ファイル名は f.sh にします


~/f.sh

#!/bin/sh

if [ -e hello.txt ] 
then
	touch new.txt   
fi

if 文の条件式には test コマンドの省略形の[]を用います。


if リスト 
then
	# 上の行のリスト内の条件がtrue(真)であった場合に行う処理を書く
fi

の記述になります。




先程のコードに任意のファイル(hello.txt)がある場合はnew.txtファイルを生成し、ない場合はhello.txtを作成するという処理に変更してみます。

#!/bin/sh

if [ -e hello.txt ] 
then
	touch new.txt   
else
	touch hello.txt
fi

elseで新しい行を追加します。




もう一つ条件を追加したい場合はelifを利用します。

#!/bin/sh

if [ -e hello.txt ] 
then
	touch new.txt 
elif [ -e new.txt] 
then
	touch hoge.txt
else
	touch hello.txt
fi

補足

ifとthenを同じ行に書きたい時は

if [ -e hello.txt ]; then

のように[]とthenの間にセミコロン( ; )を入れます。

同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。