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