IF 文

Bashスクリプト入門

Alex Scriven

Data Scientist

基本の IF 文

Bash の基本的な IF 文は次の構造です:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

ヒント:

  • 角かっこと中の要素の間にスペース(1 行目)
  • 閉じ角かっこの後にセミコロン ];
Bashスクリプト入門

IF 文と文字列

IF 文で基本的な文字列比較ができます:

x="Queen"

if [ $x == "King" ]; then
echo "$x is a King!"
else echo "$x is not a King!" fi
Queen is not a King!

'等しくない' には != も使えます

Bashスクリプト入門

算術 IF 文(方法 1)

算術の IF 文は二重丸かっこを使えます:

x=10

if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Bashスクリプト入門

算術 IF 文(方法 2)

算術の IF 文は、角かっこと算術フラグ(>, <, =, != などの代わり)も使えます:

  • -eq 等しい
  • -ne 等しくない
  • -lt より小さい
  • -le 以下
  • -gt より大きい
  • -ge 以上
Bashスクリプト入門

算術 IF 文の例

前の例を角かっこ記法で書き直します:

x=10
if [ $x -gt 5 ]; then
    echo "$x is more than 5!"
fi
10 is more than 5!
Bashスクリプト入門

その他の Bash 条件フラグ

Bash には次のようなファイル関連フラグもあります:

  • -e ファイルが存在する
  • -s ファイルが存在しサイズが 0 より大きい
  • -r ファイルが存在し読み取り可能
  • -w ファイルが存在し書き込み可能

その他いろいろ:

Bashスクリプト入門

Bash の AND と OR の使用

 

条件を結合(AND)したり OR を使うには次の記号を使います:

  • && は AND
  • || は OR
Bashスクリプト入門

複数条件

Bash では次のように条件を連結できます:

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
Bashスクリプト入門

IF とコマンドラインプログラム

角かっこを使わずに、多くのコマンドラインプログラムを直接条件に使うこともできます。角かっこを外します。

例: words.txt に 'Hello World!' が入っている場合:

if grep -q Hello words.txt; then
    echo "Hello is inside!"
fi
Hello is inside!
Bashスクリプト入門

シェル内シェルでの IF

条件としてシェル内シェルを呼び出すこともできます。

先ほどの例を書き換えると、同じ結果になります。

if $(grep -q Hello words.txt); then
    echo "Hello is inside!"
fi
Hello is inside!
Bashスクリプト入門

練習しましょう!

Bashスクリプト入門

Preparing Video For Download...