Jaybanuan's Blog

調べたことをメモしていくブログ

bashのシェルスクリプトでよく使うコードスニペット

はじめに

最近、シェルスクリプトを書くことが多い。 何度も調べるのが面倒なので、メモを残しておく。 自分がよく使うものだけなので、網羅性はない。 理屈どうこうより、コピペですぐ使えるようにしておく。

条件分岐 (構文)

if

if [ 条件 ]; then
    #
fi

if 〜 else

if [ 条件 ]; then
    #
else
    #
fi

if 〜 else if 〜 else

if [ 条件 ]; then
    #
elif [ 条件 ]; then
    #
else
    #
fi

条件分岐 (文字列)

文字列の比較 (等しい)

if [ "$STR" = "foo" ]; then
    #
fi

文字列の比較 (等しくない)

if [ "$STR" != "foo" ]; then
    #
fi

空文字列かどうか

if [ -z "$STR" ]; then
    #
fi

繰り返し (構文)

値の列挙による繰り返し (ハードコーディングによる)

for VAR in value1 value2 value3; do
   #
done

値の列挙による繰り返し (コマンド実行による)

この例はlsの結果を繰り返し処理している。

for VAR in `ls`; do
   #
done

関数

関数定義

function foo() {
    #
}

関数呼び出し

foo param1 param2

ヒアドキュメント

ヒアドキュメントをコマンドに標準入力として渡す

以下はcatに標準入力として渡して、画面に表示する例。

cat << EOS
foo
EOS

ヒアドキュメントをファイルに出力する

cat << EOS > output.txt
foo
EOS

その他

スクリプトの配置ディレクトリを変数に代入する

BASE_DIR=$(cd $(dirname $0); pwd)

参考