「Fishの基礎 - 条件分岐」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> == and文 == <syntaxhighlight lang="fish"> <コマンド 1>; and <コマンド 2> </syntaxhighlight> <br> <code>and</code>文は、直前のコマンドが成功した(<code>$status</code>が0を返す)場合において、コマンドを実行するために使用する。<br> <code>while</code>ブロックや<code>if</code>ブロックの条件の一部として使用することができる。<br> <br> <code>and</code>文は、そ…」)
 
1行目: 1行目:
== 概要 ==
== 概要 ==


<br><br>
== if文 ==
<コマンド 1>が実行された後、終了ステータスが0の場合は<コマンド 真1>が実行される。<br>
終了ステータスが0以外の場合かつ<code>else</code>句が指定された場合は<コマンド 偽>が実行される。<br>
<br>
条件には、<code>and</code>または<code>or</code>を使用することができる。<br>
<br>
<u>最後に終了したコマンドの終了ステータスは、変数<code>$status</code>を使用してアクセスすることができる。</u><br>
<syntaxhighlight lang="fish">
if <コマンド 1>
    <コマンド 真1>
else if <コマンド 2>
    <コマンド 真2>
else;
    <コマンド 偽>
end
</syntaxhighlight>
<br>
以下の例では、foo.txtファイルが存在して、かつ、通常のファイルであれば<u>foo.txt exists</u>と表示する。<br>
そうでなければ、bar.txtファイルが存在して、かつ、通常のファイルであれば<u>bar.txt exists</u>と表示する。<br>
両方のファイルが存在しない場合は、<u>foo.txt and bar.txt do not exist</u>と表示する。<br>
<syntaxhighlight lang="fish">
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
</syntaxhighlight>
<br><br>
<br><br>



2023年12月28日 (木) 18:49時点における版

概要



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



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