Linux シェルスクリプト|引数チェック|引数の数をチェック|引数の文字列をチェック|bash シェル


ここでは、下記の引数をチェックするシェルスクリプトについて記載する。


・引数の数をチェック

・引数の文字列をチェック


引数の数をチェック

下記の sample.sh のようなシェルスクリプトで引数の数をチェックできる。
このシェルスクリプトでは、引数の数が 1 つの場合は OK、 それ以外の場合は ERROR (エラー) としている。

・sample.sh
#!/bin/bash

argument_num=$#

if [ ${argument_num} -eq 1 ]; then
    echo "引数の数 ${argument_num} OK"
  else
    echo "引数の数 ${argument_num} ERROR"
fi

・実行結果

# ./sample.sh
引数の数 0 ERROR

# ./sample.sh test1
引数の数 1 OK

# ./sample.sh test1 test2
引数の数 2 ERROR

引数の文字列をチェック

該当する文字列以外の引数はエラー

下記の sample.sh のようなシェルスクリプトで引数の文字列をチェックできる。
このシェルスクリプトでは、引数の文字列が test1、test2、test3 の場合は OK、それ以外の場合は ERROR (エラー) としている。

・sample.sh
#!/bin/bash

argument_str=$1

chk_argument_array=(test1 test2 test3)

for chk_argument in "${chk_argument_array[@]}";
do
  if [ "${argument_str}" = "${chk_argument}" ]; then
    chk_result="OK"
    break;
  else
    chk_result="ERROR"
  fi
done

echo "引数の文字列 ${argument_str} ${chk_result}"

・実行結果
# ./sample.sh
引数の文字列  ERROR

# ./sample.sh test1
引数の文字列 test1 OK

# ./sample.sh test2
引数の文字列 test2 OK

# ./sample.sh test3
引数の文字列 test3 OK

# ./sample.sh test
引数の文字列 test ERROR

該当する文字列を含む引数はエラー

下記の sample.sh のようなシェルスクリプトで引数の文字列をチェックできる。
このシェルスクリプトでは、引数に文字列 test (大文字と小文字を区別しない) を含まない場合は OK、含む場合は ERROR (エラー) としている。

grep コマンドの -i を使用すると、大文字と小文字を区別しない。区別したい場合は、-i オプションをはずして使用しない。

・sample.sh
#!/bin/bash

argument_str=$1

chk_argument="test"

if [ "`echo ${argument_str} | grep -i ${chk_argument}`" ]; then
  chk_result="ERROR"
else
  chk_result="OK"
fi

echo "引数の文字列 ${argument_str} ${chk_result}"

・実行結果
# ./sample.sh test
引数の文字列 test ERROR

# ./sample.sh TEST
引数の文字列 TEST ERROR

# ./sample.sh Test
引数の文字列 Test ERROR

# ./sample.sh atestb
引数の文字列 atestb ERROR

# ./sample.sh aaa
引数の文字列 aaa OK




スポンサーリンク

0 件のコメント :

コメントを投稿