UNIX Bシェルスクリプト メモ

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コマンドメモ
[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送