Linux シェル,引数に禁止ワードが含まれているか確認する

スポンサーリンク

鍛錬 186

Linux シェルスクリプト,引数に禁止ワードが含まれているか確認する

Linux のシェルスクリプトで、引数に禁止ワードが含まれているかを確認する方法についてです。引数の一覧を取得するには、$* を使用します。

シェルスクリプト

まずは、引数の一覧を取得するだけのシェルスクリプト arg_list.sh で、挙動を確認します。

#!/bin/sh

echo $*

実行結果

以下は、引数に AAA BBB CCC を与えてシェルスクリプト arg_list.sh を実行しています。

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./arg_list.sh AAA BBB CCC
AAA BBB CCC

引数に禁止ワードが含まれているか確認するシェルスクリプト

以下のシェルスクリプト check_arg.sh は、上記のシェルスクリプト arg_list.sh を応用して、引数に禁止ワードが含まれている場合は、エラーを表示して終了します。
例として、peach を禁止ワードに設定しています。

#!/bin/sh

ARG_LIST=$*       # 引数一覧
BAN_WORD="peach"  # 禁止ワード

tmp=$(echo $ARG_LIST | grep $BAN_WORD)
len=${#tmp}
if [ $len -ne 0 ]; then
	echo "ERROR,引数に禁止ワードが含まれています"
	echo "禁止ワード: $BAN_WORD"
	
	exit 1
fi

exit 0

実行結果

以下は、次の順序で実行しています。

  1. 引数に禁止ワードを含めず実行。
  2. 引数に禁止ワード peach を含めて実行。
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./check_arg.sh AAA BBB CCC
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./check_arg.sh AAA BBB CCC peach
ERROR,引数に禁止ワードが含まれています
禁止ワード: peach
タイトルとURLをコピーしました