Fishの基礎 - 条件分岐

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

if文とは、条件付きコマンドを実行するためのシンタックスである。


if文

<コマンド 1>が実行された後、終了ステータスが0の場合は<コマンド 真1>が実行される。
終了ステータスが0以外の場合かつelse句が指定された場合は<コマンド 偽>が実行される。

条件には、andまたはorを使用することができる。

最後に終了したコマンドの終了ステータスは、変数$statusを使用してアクセスすることができる。

 if <コマンド 1>
    <コマンド 真1>
 else if <コマンド 2>
    <コマンド 真2>
 else;
    <コマンド 偽>
 end


以下の例では、foo.txtファイルが存在して、かつ、通常のファイルであればfoo.txt existsと表示する。
そうでなければ、bar.txtファイルが存在して、かつ、通常のファイルであればbar.txt existsと表示する。
両方のファイルが存在しない場合は、foo.txt and bar.txt do not existと表示する。

 if [ -f foo.txt ]
    echo "foo.txt exists"
 else if [ -f bar.txt ]
    echo "bar.txt exists"
 else
    echo "foo.txt and bar.txt do not exist"
 end
 
 # []コマンドではなく、testコマンドを使用する場合
 if test -f foo.txt
    echo "foo.txt exists"
 else if test -f bar.txt
    echo "bar.txt exists"
 else
    echo "foo.txt and bar.txt do not exist"
 end


以下の例では、foo.txtファイルが通常のファイルで読み取り可能な場合、foo.txt exists and is readableと表示している。

 if [ -f foo.txt ]; and [ -r foo.txt ]
    echo "foo.txt exists and is readable"
 end
 
 # []コマンドではなく、testコマンドを使用する場合
 if test -f foo.txt; and test -r foo.txt
    echo "foo.txt exists and is readable"
 end



and文

 <コマンド 1>; and <コマンド 2>


and文は、直前のコマンドが成功した($statusが0を返す)場合において、コマンドを実行するために使用する。
whileブロックやifブロックの条件の一部として使用することができる。

and文は、それ自身は現在の終了ステータスを変更しないが、実行されるコマンドにより変更される可能性がある。
最後に終了したフォアグラウンドコマンドの終了ステータスは、常に$status変数を使用してアクセスすることができる。

以下の例では、makeコマンドを実行して、ビルドに成功する場合は、makeコマンドの終了ステータスは0になりプログラムがインストールされる。
いずれかのステップでビルドが失敗した場合は、終了ステータスが1になり、make cleanコマンドが実行されて、ビルドプロセスで作成されたファイルが削除される。

 make; and make install; or make clean



or文

 <コマンド 1>; or <コマンド 2>


or文は、直前のコマンドが失敗した(0以外の$statusを返す)場合において、コマンドを実行するために使用する。
andwhileブロックの条件の一部として使用することができる。

or文は、それ自身は現在の終了ステータスを変更しないが、実行されるコマンドにより変更される可能性がある。
最後に終了したフォアグラウンドコマンドの終了ステータスは、常に$status変数を使用してアクセスすることができる。

以下の例では、makeコマンドを実行して、ビルドに成功する場合は、makeコマンドの終了ステータスは0になりプログラムがインストールされる。
いずれかのステップでビルドが失敗した場合は、終了ステータスが1になり、make cleanコマンドが実行されて、ビルドプロセスで作成されたファイルが削除される。

 make; and make install; or make clean