非エンジニアのエンジニア道

非エンジニアからエンジニアに転向!その勉強の軌跡を載せていきます。

シェルスクリプト基本2

前回の続き。基本のこと。

シェル変数

あらかじめシェルが定義している変数
setコマンドで一覧を表示

環境変数

各ユーザごとに設定されている変数。子のシェルに引き継ぐ
exportコマンドで一覧を表示

実行

.shのファイルを実行するには、ファイルに実行権限を付与する

# chmod u+x hoge.sh

クォート

ダブルクォート

パラメータ展開とコマンド置換を行う。

シングルクォート

囲まれた文字列は全て展開されず、文字そのものとなる。

バックスラッシュ

次の文字は連解されずに、文字そのものとなる。

バッククォート

コマンド実行された結果に置き換わる。

関数

check()
{
    if [ $1 -gt $2 ]
    then
        return 1
    elif [ $1 -lt $2 ]
    then
        return 2
    else
        return 0
    fi
}
check $1 $2
ret=$?
echo $ret

関数へは、引数はスペースで区切って渡す。
関数内で参照する場合、同じく1 2と使う
returnの引数に指定できる値は、1~255の正の整数のみ

オプション

while getopts l:n: opt
do
    case $opt in
        l)
            FLG_L=$OPTARG
            ;;
        n)
            FLG_N=$OPTARG
            ;;
    esac
done

if [ -n "$FLG_L" ]
then
    echo "-l $FLG_L"
fi

if [ -n "$FLG_N" ]
then
    echo "-n $FLG_N"
fi

オプションを利用して引数を渡す



次はbashとshの比較まわりでも書いてみる。