シェルスクリプトのメモ
シェルスクリプトの書き方
引数
コマンドの引数に指定した値を使う時は$を使う。
sh hoge.sh 引数1 引数2
引数を使う時
echo $1 echo $2
変数
変数名の前には$マークをつけない。(値を設定する時)
VAR='hoge'
変数を参照するときは$マークをつける。
echo $VAR
if文
if文の条件は[]で囲む。
#!/bin/sh VAR1=0 VAR2=1 if [ $VAR1 -gt $VAR2 ]; then echo "VAR1はVAR2より大きい" elif [ $VAR1 -eq $VAR2 ]; then echo "VAR1とVAR2は等しい" else echo "VAR1はVAR2より小さい" fi
実行結果
VAR1はVAR2より小さい
演算子まとめ
演算子 | 説明 |
---|---|
-gt | 「>」より大きい(greater than) |
-ge | 「>=」以上(greater than or equal ) |
-lt | 「<」より小さい(less than) |
-le | 「<=」以下(less than or equal) |
-eq | 等しい(equal) |
-ne | 等しくない(not equal) |
for文
for文はforとinとdoとdoneで書く。
for VAR in hoge fuga foo piyo do echo $VAR done
実行結果
hoge fuga foo piyo
ループ条件を以下のように書くと、カレントディレクトリにあるHTMLファイルを対象にループを回すことができる。
#!/bin/sh for file in `\find . -name '*.html'`; do echo $file done
実行結果
./hoge.html ./fuga.html ./foo.html ./piyo.html
文字列の連結
変数に入れた文字列を連結する時は以下のように変数をつなげる。
#!/bin/sh VAR1='hoge' VAR2='piyo' echo $VAR1$VAR2
変数と文字列をつなげたい時は、変数を区別させるために{}で囲む。
#!/bin/sh VAR='hoge' echo ${VAR}piyo
どちらも実行結果は以下の通り
hogepiyo
コメント
コメントを書く時は#を使う
#コメント