bashの条件評価 testコマンドとif文 case文

プログラミングbash

C++の条件評価であるif文とswitch文を説明します。

if文とcase文

条件評価はif文とcase文の2通りあります。

bashは他言語と比べて少し特殊な使い方です。ワンライナーでは使うことはあまりないので、馴染みがない人もいますね。

testコマンド

if文の中の条件にはコマンドなら何を入れてもいいことになっています。0を返すかどうかで判定されます。※0が真です。C、C++は0が偽なので要注意です。

しかし、あまり変なコマンドを入れると混乱の元ですのでほどほどにしましょう。

よく使うのはtestコマンドです。

testコマンドの正確な仕様はgoogleでman testで検索するとマニュアルが出ますのでそちらを見てください。

例えばtest -f AAAAとするとAAAAがファイルであれば真、ファイルでなければ偽が返ってきます。

そして、ややこしいのですが、testコマンドは鉤カッコ([ ])で置き換えることができます。

test -f AAAA
[ -f AAAA ]  #同じものです

鉤カッコがたくさんあるシェルスクリプトを見たことがある人はいると思いますが、testコマンドですので、ググるときは気を付けてください。

注意ですが、[の後と]の前にはスペースが必須です。スペースを忘れて何時間も悩むという経験はつらいので、あらかじめ言っておきます。

if文

if文の文法

if文の使い方は以下が基本です。

thenの前後に改行が必要です。また、fiがないとだめです。

if 条件
then
    #何かやる
else 
    #他の何かをやる
fi

elseは省略可能です。また、elifを付けて再び判定するのもありです。

つまり、以下のような文を書くことが可能です。

if 条件
then
    #何かやる
fi

if 条件1
then
    #何かやる
elif 条件2
then
    #何かをやる
elif 条件3
then
    #何かをやる
else
    #最後に何かをやる
fi

if 条件1
then
    #何かやる
elif 条件2
then
    #何かをやる
elif 条件3
then
    #何かをやる
fi

case文

case文の文法

case文の使い方は以下です。

case 文字列 in
    pattern1) コマンド   ;;
    pattern2) コマンド   ;;
    pattern3) コマンド   ;;
esac

コマンドは何もなくてもよいですが、;;は必須です。

patternのところにはワイルドカードなどの正規表現を利用できます。

まとめ

bashのif文、case文を説明しました。

私はbashのif文、case文はワンライナでは使うことはほぼないので忘れてしまいます。

>>> いろいろなプログラミング言語の条件評価 if文など

>>> 今日を生き抜くプログラミングの知識 bash(シェル)の知識

コメント

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました