testコマンドと演算子
testコマンドは [ コマンドとほぼ同じ機能を持ちます。
最後に引数 ] を取るか取らないかを除いて同じ動きをします。
文字列に関する評価演算子
=:等しい
!=:等しくない
-n :空文字ではない
-z:空文字列である
整数に関する評価演算子
-eq:等しい
-ne:等しくない
1 -lt 2:1が2より小さい
1 -le 2:1が2以下
1 -gt 2:1が2よりおおきい
1 -ge 2:1が2以上
ファイル属性に関する評価演算子
-e file:fileが存在する。
-d file:fileが存在し、ディレクトリである。
-h file:fileが存在し、シンボリックリンクである。
-L file:fileが存在し、シンボリックリンクである(-hと同じ)。
-f file:fileが存在し、通常のファイルである。
-r file:fileが存在し、読み取りパーミッションが与えられている。
-w file:fileが存在し、書き込みパーミッションが与えられている。
-x file:fileが存在し、実行パーミッションが与えられている。
file1 -nt file2:file1の変更時刻がfile2より新しい
file1 -ot file2:file1の変更時刻がfile2より古い
演算子の結合
結合演算子
条件式1 -a 条件式2:条件式1と条件式2の両方が真の場合に真(AND)
条件式1 -o 条件式2:条件式1と条件式2の少なくとも1つが真の場合に真(OR)
! 条件式:条件式の真偽を逆にする(NOT)
( ):条件式をグループ化する
( ):はメタ文字なので、\でエスケープして利用します。
コマンド1 && コマンド2:コマンド1の終了ステータスがゼロであるとき、コマンド2を実行します。
コマンド1 || コマンド2:コマンド1の終了ステータスがゼロ以外であるとき、コマンド2を実行します。
exit 終了ステータス:明示的に終了ステータスを指定できます。
for文
スペースやタブで区切られた単語のリストに対して繰り返し処理を行う構文です。
for 変数名 in リスト
do
繰り返す処理
done
でOKです。
リスト部分には、固定文字列、パス名展開、コマンド置換を利用できます。
seq 開始値 終了値:数値列を出力する。
$@:すべてのコマンドライン引数に対して処理を行います。
in リストを省略すると$@がリスト対象とみなされます。
コメント