Bash

Last-modified: 2008-07-30 (水) 11:29:14

条件式

ファイルのプロパティ

-e ファイルファイルが存在しているとき真
-z ファイルファイルが空のとき真
-b ファイルファイルがブロック特殊ファイルのとき真
-c ファイルファイルがキャラクタ特殊ファイルのとき真
-d ファイルファイルがディレクトリのとき真
-f ファイルファイルがノーマルファイルのとき真
-r ファイルファイルが読み出し可能のとき真
-s ファイルファイルの長さが1バイト以上あるとき真
-w ファイルファイルが書き込み可能のとき真
-x ファイルファイルが実行可能のとき真

例:hogeディレクトリが存在するか確認する

if [ -d hoge ]
then
 echo "${hoge} is directory"
fi

配列メモ

for文で要素全てを含ませる

for X in ${array[@]}

要素数を返す

${#array[@]}

シェル変数パターンマッチ

${variable#pattern}
variable の値の最初の部分とpatternが一致したもっとも短く一致する部分を削除
${variable##pattern}
variable の値の最初の部分とpatternが一致したもっとも長く一致する部分を削除
${variable%pattern}
variable の値の終りの部分とpatternが一致したもっとも短く一致する部分を削除
${variable%%pattern}
variable の値の終りの部分とpatternが一致したもっとも長く一致する部分を削除

cutコマンド

ファイルが

hoge:200
piyo:500
hogera:300

となっているとき
数字の部分だけ配列に入れたいときは

array=$(cut -f2 -d: ファイル)

とする
デリミタにスペースを使うには

-d' '

を使う

#ファイルテスト