知っておくとちょっと便利!シェルスクリプトの作り方2

今号では、前回より引き続き知っておくとちょっと便利なシェルスクリプトの基本についてご紹介します!

コマンド例2 (if 文)

  • if 文とは
    条件分岐をさせるための構文
    実行結果によって、プログラムに違う動作をさせる
  • 構文(基本系)
    if [ 条件式 ] ;then
      (実行結果が条件に合致した場合に行う処理)
    fi
    

    ※”[” および “]” と条件式の間には、スペース (空白) が必要です。

  • 例文(基本系)
    例文では、条件式の中で 2つの文字列 ($txt1, txt2) の値を比較し、同じ値である場合 “true” という文字を出力しています。
    下記の場合、2つの文字列 ($txt1, txt2) に同じ値 “txt” が入っているため、”true” が出力されました。
    # cat oss2-1.sh
    #!/bin/bash
    
    txt1="txt";
    txt2="txt";
    
    if [ $txt1 = $txt2 ] ;then
      echo "true";
    fi
    
    # ./oss2-1.sh
    true
    

    なお、下記のように 2つの文字列 ($txt1, txt2) にそれぞれ違う値 “txt1″,”txt2” を指定すると、
    条件に合致した場合の処理 (echo “true”) は実行されず、何も出力されません。

    # cat oss2-1.sh
    #!/bin/bash
    
    txt1="txt1";
    txt2="txt2";
    
    if [ $txt1 = $txt2 ] ;then
      echo "true";
    fi
    
    # ./oss2-1.sh
    #
    
  • if文で使用できる演算子
    if文における “[ ]” 内の条件式では、様々な演算子が使用できます。
    ここですべての演算子をご紹介することはできませんが、とりわけ使う頻度が高いと考えられるもの、
    OSSエンジニアが日頃からよく使用しているものをピックアップしてご紹介します。
    演算子 使用例 意味
    -eq 数値1 -eq 数値2 数値1と数値2の値が等しければ、条件に合致
    -ne 数値1 -ne 数値2 数値1と数値2の値が等しくなければ、条件に合致
    = 文字列1 = 文字列2 文字列1と文字列2の値が等しければ、条件に合致
    != 文字列1 != 文字列2 文字列1と文字列2の値が等しくなければ、条件に合致
    -e -e ファイル名 指定したファイル名が存在するならば、条件に合致
    -a 条件1 -a 条件2 条件1および条件2のどちらも成り立つ場合、条件に合致
    -o 条件1 -o 条件2 条件1もしくは条件2のどちらかが成り立つ場合、条件に合致

    -eq 演算子で、2つの数値を比較するスクリプトの例

    # cat oss2-2.sh
    #!/bin/bash
    
    num1=100;
    num2=100;
    
    if [ $num1 -eq $num2 ] ;then
      echo "true";
    fi
    
    # ./oss2-2.sh
    true
    

    -e 演算子で、指定したファイルが存在するかを確認するスクリプトの例

    # cat oss2-3.sh
    #!/bin/bash
    
    file="/var/log/messages"
    
    if [ -e $file ] ;then
      echo "true";
    fi
    # ./oss2-3.sh
    true
    

    ※次号では、シェルスクリプトの作り方 (if文、ちょっと応用編) についてご紹介していきます。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です