UnsplashのFabian Quinteroが撮影した写真
シェルスクリプトでよく使うコマンドをまとめました。
OS:Windows11 Home / WSL(Ubuntu20.04)
先頭に「#」をつける
# これはコメントです。
■定義
[変数名]=[値]
例)str='Hello'
※「=」の両端はスペース禁止です!
■呼び出し
$[変数名]
例)$str
変数展開をするには両端を「”(ダブルクオーテーション)」で囲みます。
変数展開の例)
echo "私の名前は$strです。"
四則演算は以下のように「(())」で囲む必要があります。
((i=$i+1))
■演算子一覧
記号 | 内容 |
a + b | 足し算 |
a – b | 引き算 |
a * b | 掛け算 |
a / b | 割り算 |
a % b | aでbを割った余り |
■数値の比較
記号 | trueとなる条件 |
-eq | = 。左辺と右辺が等しい |
-ne | != 。左辺と右辺が異なる |
-gt | > 。左辺が大きい |
-lt | < 。左辺が小さい |
-ge | >=。左辺が右辺以上 |
-le | <=。左辺が右辺以下 |
■文字列の比較
記号 | trueとなる条件 |
-n 文字列 | 文字列の長さが0よりも大きい |
-z 文字列 | 文字列の長さが0 |
= | 等しい |
!= | 等しくない |
記号 | 内容 |
![条件] | NOT |
[条件1] -a [条件2] | AND |
[条件1] -o [条件2] | OR |
条件分岐は以下のようにします。
条件分岐の例)
if [ $color = 'blue' ] ; then
echo 'GO'
elif [ $color = 'yellow' ] ; then
echo 'CAUTION'
else
echo 'STOP'
fi
繰り返し処理は以下のように書きます。
繰り返しの例)
$i=0
while [ $i -lt 5 ] ; do
echo "現在のカウントは$iです"
((i=$i+1))
done
関数の定義と呼び出しは以下のようにします。
#定義
function [関数名] ()
{
処理
return [戻り値]
}
#呼び出し
[関数名] [引数1] [引数2]
※引数は$1~$9で受け取ります。
※戻り値は数値しか渡せません。
関数を使う例)
#定義
function func1()
{
echo 'func1です!'
echo "引数1は$1、引数2は$2です!"
return 1
}
#呼び出し
func1 val1 val2
※戻り値は関数実行後に「$?」で取得できます。
正常に関数が動くと以下のようになります。
■定義
#!/bin/bash
~~処理~~
exit [戻り値]
■呼び出し
シェルスクリプトを呼び出す際はファイルのパスを「`(バッククオート)」で囲みます。
#!/bin/bash
`[シェルスクリプトのパス]`
echo $? ⇐戻り値は「$?」で受け取る