シェルスクリプトの書き方 |
#!`シェルプログラムパス` 実行するコマンド ... |
シェルスクリプト例 |
#!/bin/bash echo hello |
コメントを入れる例 |
1: #!/usr/bin/sh 2: # ここはコメントです。 3: echo "これはスクリプト本体です。" |
行の途中で改行する例 |
1: #!/usr/bin/sh 2: echo "これはシェルスクリプトです。\ 3: 途中で改行したくなっちゃいました。" |
最後に実行したコマンドのexit値 | |
シェル自身のプロセスID | |
シェルが最後に起動したバックグラウンドプロセスのプロセスID | |
シェルの起動時のフラグ、setコマンドを使って設定したフラグの一覧 | |
スクリプトに渡された n番目の引数 (9個まで引数を取れる。 $0はスクリプトの名前、 $1は第1引数、…、$9は第9引数) | |
シェルに対する引数の個数(引数がない場合は0) | |
全引数リスト。ダブルクォートで囲んだ場合、"$1 $2 … $n" と全引数を一つにくっつけた物に展開される。 | |
全引数リスト。ダブルクォートで囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開する。 |
コマンド置換例 |
1: #!/usr/bin/sh 2: var=`date` 3: echo $var |
数値演算コマンド exprで使う演算子 | |
+ | |
- | |
\* | |
/ | |
% |
四則演算例 |
1: #!/usr/bin/sh 2: echo "8 + 4 = `expr 8 + 4`" 3: echo "8 - 4 = `expr 8 - 4`" 4: echo "8 * 4 = `expr 8 \* 4`" 5: echo "8 / 4 = `expr 8 / 4`" 6: echo "8 % 4 = `expr 8 % 4`" |
if文の書き方 |
if 条件; then コマンド ..... elif コマンド ..... else コマンド ..... fi |
if文の例 |
1: #!/usr/bin/sh 2: if [ $1 = "argment" ]; then 3: echo "引数はargmentです。" 4: elif [ $1 = "hikisu" ]; then 5: echo "引数はhikisuです。" 6: else 7: echo "なんか引数が渡りました。" 8: fi |
for文の書き方 |
for 変数 in リスト do コマンド done |
for文例 |
1: #!/usr/bin/sh 2: for var in a b c d 3: do 4: echo $var 5: done |
while文の書き方 |
while 条件 do コマンド done |
while文例 |
1: #!/usr/bin/sh 2: a=1 3: while [ a -lt 3 ] 3: do 4: echo "a = $a" 5: a=`expr $a + 1` 6: done |
case文の書き方 |
case 変数 in パターン1) コマンド;; パターン2) コマンド;; パターン3) コマンド;; esac |
case文例 |
1: #!/usr/bin/sh 2: case $1 in 3: A) echo "引数はAです。";; 4: B) echo "Bが引数につけられました。";; 5: C) echo "Cは引数です。";; 6: esac |
文字列比較演算子 | |
両辺の文字列が一致したとき真 | |
両辺の文字列が一致しないとき真 | |
変数 変数がnullでないときに真 | |
変数 変数がnullのときに真 |
ファイル属性演算子 | |
fileが存在してディレクトリのとき真 | |
fileが存在するとき真 | |
ファイルが存在し普通のファイルのとき真 |
論理演算子 | |
かつ | |
または |
数値評価演算子 | |
より小さい | |
以上 | |
等しい | |
以上 | |
より大きい | |
等しくない |
条件の評価例 |
1: #!/usr/bin/sh 2: if [ -n $1 ]; then 3: echo "なんか引数がついています。" 4: fi 5: if [ $1 -gt 10 ]; then 6: echo "10より大きい数字みたいです。" 7: fi |
関数の書き方 |
関数名() { コマンド ..... } |
関数例 |
1: #!/usr/bin/sh 2: func() { 3: echo "関数の中です。" 4: echo "引数は $1 です。" 5: } 5: 6: func arg1 |