ShellScript
/bin/shのシェルスクリプトについてのメモ
変数
var="asdf" echo $var
=の前後にスペースを入れてはいけない。
特殊な変数
$? 最後に実行したコマンドのexit値 $$ シェルのプロセスID $! シェルが最後に起動したバックグラウンドプロセスのプロセスID $- シェルの起動時のフラグ、setコマンドを使って設定したフラグの一覧 $0 スクリプト名 $1,$2,$3,... n番目の引数 ($1〜$9) $# 引数の個数(0〜) $* 全引数リスト。ダブルクォートで囲んだ場合、"$1 $2 … $n" と全引数を一つにくっつけた物に展開される。 $@ 全引数リスト。ダブルクォートで囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開する。
制御構造
if
#!/bin/sh
if [ $1 = "-n" ]; then
     コマンド
elif [ $1 = "-m" ]; then
     コマンド
else
     コマンド
fi
とか
条件文
testコマンド([])を使う。
| -e file | ファイルが存在するか | 
| -d file | ディレクトリか | 
| -f file | 普通のファイルか | 
| -a | AND | 
| -o | OR | 
| =, != | 文字列の比較 | 
| -z 変数 | 空文字列か | 
| -n 変数 | 空でないか | 
| -eq, -ne | 数値の比較 | 
| -lt, -le, -ge, -gt | <, <=, >=, > | 
for
for var in a b c d
do
    echo $var
done
とか
while
while 条件
do
     コマンド
done
case
case 変数 in
     パターン) コマンド;;
     パターン) コマンド;;
     パターン) コマンド;;
esac
View on github | Report issue