0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linux for,while,if,case,testコマンドについて(自分用メモ

Posted at

●シェルスクリプトにおいて繰り返し処理を行うにはfor文やwhile文などを使う。

■for

for 変数名 in 値のリスト
do
 実行分
done

for文は、指定された「値のリスト」を「変数名」に1つずつ格納していき、その度にdo ~ doneの間の「実行文」を処理

■while

while 条件分
do
 実行分
done

while文は、条件文に記述されたコマンドの終了ステータスを使用し、繰り返し処理を継続するか終了するかを判定する。条件文が真(0)の場合に繰り返し処理を継続し、条件文が偽(0以外)の時点で繰り返し処理を終了

シェルスクリプトにおいて、処理の内容によって動作を変える(条件分岐)にはif文やcase文などを使用。

●if

if 条件分
then
 実行分1
else
 実行分2
fi

※実行文2を記述しない場合は「else」を省略できる。

●case

case 値 in
 パターン1)実行文 ;;
 パターン2)実行文 ;;
 ・・・・・
esac

値とパターンを照合し、パターンに一致するとそのパターンに指定されている実行文を処理。
パターンは任意の数の指定が可能。上から順番に値との照合を行い、一番最初に一致したパターンに対応する処理を実行し、case文を終了。一致するパターンが無い場合は、処理は実行されない

●testコマンド
条件式の真偽を判断し、その結果を終了ステータスとして返す(真は0、偽は1)。testコマンドは標準出力に何も表示しないため、while文やif文(条件分岐)などを使用する際に便利。

test 条件式
または
[ 条件式 ] ※「[」の後ろと「]」の前にはスペースが必要

▲ファイルに関する主な条件式

・-d パス 指定したパスが存在し、ディレクトリであれば真
・-e パス 指定したパスが存在すれば真
・-f パス 指定したパスが存在し、ファイルであれば真
・-r パス 指定したパスが存在し、読み込み可能であれば真
・-w パス 指定したパスが存在し、書き込み可能であれば真
・-x パス 指定したパスが存在し、実行可能であれば真

▲数値の比較に関する主な条件式

・数値1 -eq 数値2 数値1と数値2が等しければ真
・数値1 -ge 数値2 数値1が数値2以上であれば真
・数値1 -gt 数値2 数値1が数値2より大きければ真
・数値1 -le 数値2 数値1が数値2以下であれば真
・数値1 -lt 数値2 数値1が数値2未満であれば真
・数値1 -ne 数値2 数値1と数値2が等しくなければ真

▲ファイルの比較に関する主な条件式

・ファイル1 -nt ファイル2 ファイル1の更新日付がファイル2より新しければ真
・ファイル1 -ot ファイル2 ファイル1の更新日付がファイル2より古ければ真

▲以下の条件式はtestコマンドのオプションで結合できる

・!条件 条件が偽であれば真
・条件1 -a 条件2 条件1と条件2の両方が真であれば真(andと同じ意味)
・条件1 -o 条件2 条件1と条件2のどちらかが真であれば真(orと同じ意味)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?