Bashスクリプト入門
Alex Scriven
Data Scientist
Bash の基本的な IF 文は次の構造です:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
ヒント:
];IF 文で基本的な文字列比較ができます:
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
'等しくない' には != も使えます
算術の IF 文は二重丸かっこを使えます:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
算術の IF 文は、角かっこと算術フラグ(>, <, =, != などの代わり)も使えます:
-eq 等しい-ne 等しくない-lt より小さい-le 以下-gt より大きい-ge 以上前の例を角かっこ記法で書き直します:
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash には次のようなファイル関連フラグもあります:
-e ファイルが存在する-s ファイルが存在しサイズが 0 より大きい-r ファイルが存在し読み取り可能-w ファイルが存在し書き込み可能その他いろいろ:
条件を結合(AND)したり OR を使うには次の記号を使います:
&& は AND|| は ORBash では次のように条件を連結できます:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
または二重角かっこ記法を使います:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
角かっこを使わずに、多くのコマンドラインプログラムを直接条件に使うこともできます。角かっこを外します。
例: words.txt に 'Hello World!' が入っている場合:
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
条件としてシェル内シェルを呼び出すこともできます。
先ほどの例を書き換えると、同じ結果になります。
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Bashスクリプト入門