3日書かないと、すぐ忘れるのでメモ ← ボケ老人
1.特殊変数
$? 直前に実行したコマンドの帰り値
$n スクリプトに渡された n番目の引数 (9個まで)
$# 引数の個数(引数がない場合は0)
$$ シェル自身のプロセスID
$! シェルが最後に起動したバックグラウンドプロセスのプロセスID
$- シェルの起動時のフラグ、setコマンドを使って設定したフラグの一覧
$* 全引数リスト。全引数がまとめてダブルクォートに囲まれる。"$1 $2 … $n"
$@ 全引数リスト。引数一つ一つがダブルクォートで囲まれる。"$1" "$2" … "$n"
最初の3つを覚えていれば、95%事足りる。
2.関数の作り方
書式
関数名() {
処理
}
引数
$n
サンプル
#!/usr/bin/sh
MyFunc() {
echo "引数:$1"
}
MyFunc arg1
3.制御構文
<b>if文</b>
if [ $1 = "hoge" ]; then
処理
elif [ $1 = "fuge" ]
処理
else
処理
fi
<b>for文 </b>
for str in `cat /tmp/file`
do
echo $str
done
<b>while文 </b>
i=1
while [ $i -lt 3 ]
do
echo "i = $i"
i=`expr $i + 1`
done
4.条件式の書き方
文字列評価
= 両辺の文字列が一致したとき真
!= 両辺の文字列が一致しないとき真
-n 変数 変数がnullでないときに真
-z 変数 変数がnullのときに真
数値評価
-lt より小さい
-le 以上
-eq 等しい
-ge 以上
-gt より大きい
-ne 等しくない
ファイル属性評価
-d file fileが存在してディレクトリのとき真
-e file fileが存在するとき真
-f file ファイルが存在し普通のファイルのとき真
論理演算子
-a かつ
-o または