シェルスクリプト えとせとら
-------------------------------------
シェルスクリプト
あちこちネット検索が手間なのでメモ
-------------------------------------
【気をつけること】 ・文字と改行コードに注意
【変数】 $0 ・・・スクリプト名 $n ・・・第 n 引数の値 $# ・・・引数の個数
【算術】
NUM=expr ${NUM} + 10
NUM=expr ${NUM} ¥* 10
【 if 】 if[ ] then fi
○ 形式 -b ファイル名 ・・・ブロックデバイスファイルなら真 -c ファイル名 ・・・キャラクタデバイスファイルなら真 -d ファイル名 ・・・ディレクトリなら真 -f ファイル名 ・・・通常ファイルなら真 -L ファイル名 ・・・シンボリックリンクなら真 -p ファイル名 ・・・名前つきパイプなら真 -S ファイル名 ・・・ソケットなら真
○ パーミッション -g ファイル名 ・・・SGIDがセットされてるなら真 -k ファイル名 ・・・スティッキービットがセットされてるなら真 -r ファイル名 ・・・読み取り可能なら真 -u ファイル名 ・・・SUIDがセットされてるなら真 -w ファイル名 ・・・書き込み可能なら真 -x ファイル名 ・・・実行可能なら真
○ その他 -e ファイル名 ・・・ファイルが存在すれば真 -s ファイル名 ・・・ファイルサイズが0より大きければ真
○ 数値 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等しくなければ真
【 case 】 case ${STR} in sec) echo "sec" ;; min) echo "min" ;; esac
【 for 】 for num in "a b c" do echo ${num} done
結果 a b c
【 while 】
○ 10回繰り返し
i=0
while[ $i -le 10 ]
do
i=$i + 1
done
○ ファイルから読み込み while read line do echo ${line} done < test.txt