ここでは、下記の引数をチェックするシェルスクリプトについて記載する。
・引数の数をチェック
・引数の文字列をチェック
引数の数をチェック
下記の 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 件のコメント :
コメントを投稿