「Fishの基礎 - 条件分岐」の版間の差分
(ページの作成:「== 概要 == <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>文は、そ…」) |
(→概要) |
||
(同じ利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
if文とは、条件付きコマンドを実行するためのシンタックスである。<br> | |||
<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> | |||
以下の例では、foo.txtファイルが通常のファイルで読み取り可能な場合、<u>foo.txt exists and is readable</u>と表示している。<br> | |||
<syntaxhighlight lang="fish"> | |||
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 | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
2023年12月28日 (木) 18:56時点における最新版
概要
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
を返す)場合において、コマンドを実行するために使用する。
and
やwhile
ブロックの条件の一部として使用することができる。
or
文は、それ自身は現在の終了ステータスを変更しないが、実行されるコマンドにより変更される可能性がある。
最後に終了したフォアグラウンドコマンドの終了ステータスは、常に$status
変数を使用してアクセスすることができる。
以下の例では、make
コマンドを実行して、ビルドに成功する場合は、make
コマンドの終了ステータスは0
になりプログラムがインストールされる。
いずれかのステップでビルドが失敗した場合は、終了ステータスが1
になり、make clean
コマンドが実行されて、ビルドプロセスで作成されたファイルが削除される。
make; and make install; or make clean