Bシェル [ 大括弧の前後に半角スペースを入れる事 [ はコマンドとして解釈される為。 Bシェル IF if [ $1 = "argment" ]; then echo "引数はargmentです。" elif [ $1 = "hikisu" ]; then echo "引数はhikisuです。" else echo "引数は$1です。" fi if [ -n $1 ]; then echo "引数があります。" fi ・数値比較 数値の比較を行うには、以下の書式になります。 n1 -eq n2 n1とn2が等しいとき真。 n1 -ne n2 n1とn2が等しくないとき真。 n1 -gt n2 n1 > n2 なら真。 n1 -ge n2 n1 ≧ n2 なら真。 n1 -lt n2 n1 < n2 なら真。 n1 -le n2 n1 ≦ n2 なら真。 ! n1 論理演算NOT。 n1 -a n2 論理演算AND。 n1 -o n2 論理演算OR。 if [ $1 -gt 10 ]; then echo "10より大きい数の引数です。" fi if [ $1 -gt 0 ] ; then echo "$1 は正の数です。" elif [ $1 -lt 0 ] ; then echo "$1 負の数です。" else echo "$1 はゼロです。" fi Bシェル WHILE a=2 while [ $a -lt 4 ] do echo "a = $a" a=`expr $a + 1` done Bシェル FOR for FILE in *.c do echo "copy: $FILE -> $FILE.org" cp $FILE $FILE.org done Bシェル case case "$1" in start) echo "[Start]" ;; stop) echo "[Stop]" ;; re*) echo "[Reload]" ;; *) echo "[Unknown]" ;; esac Bシェル キーボード入力 read line lineは変数 関数 関数名 () { [コマンド] } 引数は $1 〜 $9 が利用できる。 戻り値は return で指定可能。return を書かなかった場合には最後に実行したコマンドの戻り値を返す。 func () { echo $1 echo $2 } func 2 3 ------------------------------------------------------------------------------------------------ 標準出力 とエラー出力 コマンド 2>&1 logfile 特殊な変数について Bシェルには、あらかじめ定義されている特別な意味を持つ変数あります。 以下は、主な一覧です。 $? :最後に実行したコマンドのexit値。 $$ :シェル自身のプロセスID 。 $! :シェルが最後に起動したバックグラウンドプロセスのプロセスID。 $0 :スクリプトの名前。 $1〜9 :スクリプトに渡された 何番目の引数 ($1は第1引数、…、$9は第9引数) $# :シェルに対する引数の個数(引数がない場合は0) $* :全引数リスト。ダブルクォートで囲んだ場合、"$1 $2 … $n" と展開される。 Cシェルスクリプト シェルスクリプトでよく使用するUNIXコマンド UNIX awkコマンドメモ UNIX sedコマンドメモ