シェルスクリプトのメモ

シェルスクリプトの書き方

引数

コマンドの引数に指定した値を使う時は$を使う。

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

コメント

コメントを書く時は#を使う

#コメント