パラメータに基づいて分岐したいスクリプトがあります。
デフォルトでは、このパラメータはブール値と同じです。しかし、私はユーザーがシェル実行コマンドにゴミを入力し、それをtrueと解釈したくありません。
または、大文字と小文字の区別の問題などを考慮する必要がある文字列がいくつかありません。
私が望む最終結果は次のとおりです。
some_script.sh arg1 arg2 arg3 --remove
する:
PARAM1="$1"
PARAM2="$2"
PARAM3="$3"
REMOVE=?--> what here
if [ $REMOVE ]; then
# remove some files
fi
ベストアンサー1
文字列が--remove
スクリプトの位置パラメータにあることを確認するだけです。正規表現一致演算子を使用したbashバージョン=~
:
#!/bin/bash
if [[ $@ =~ --remove ]]; then
echo "removing files"
fi
exit
POSIXバージョン:
#!/bin/sh
for arg in "$@"; do
if [ "$arg" = "--remove" ]; then
echo "removing files"
fi
done
exit