UNIX シェルスクリプト sh * bash
行き当たりばったりで使っていたので新しい発見が沢山。
- リダイレクト
- ヒアドキュメント
- 行頭タブ無視: <<- EOF
- ヒアドキュメント内で $ を文字とする: << \EOF または << 'EOF'
- コマンドセパレータ (基本的に if で代用できるので使わない方がわかりやすい)
- command_1 が正しく終了したら (終了コードが 0 だったら) command_2 を実行する: command_1 && command_2
- command_1 がエラーの場合に command2_ を実行する: command_1 || command_2
- 変数が空の場合の誤動作 test や set を防ぐために、変数を扱う場合は通常 "" で囲む。変数内に * や ? などのメタキャラクタが入っている場合には "" で囲むと ls などで期待した動作にならないことがある。
- グルーピング
- サブシェルでコマンドを実行する: (command_1; command_2; ...)
- カレントシェルでコマンドを実行する最後のコマンドの後ろに ; を入れることと、{ の直後と } の直前にスペースを入れることが必要: { command_1; command_2: ...; }
- 位置パラメータ
- 引数全部: $*, $@
- 引数全部を一つとして扱う: "$*"
- 引数全部を個別に扱う: "$@"
- 引数全部: $*, $@
- test -n, test -z の代わりに test != "", test = "" を使う