ユーザーの入力を受け取るためのスクリプトを書きます。スクリプトは大文字と小文字を区別しないでください。
このスクリプトを考えてください foo.sh:
if [ $1 == "string" ]; then
echo true
else
echo false
fi
の入力が foo.sh です STRING または StRiNg 結果は偽になります。
どのように私はのケースを無視することができます if 調子?
ユーザーの入力を受け取るためのスクリプトを書きます。スクリプトは大文字と小文字を区別しないでください。
このスクリプトを考えてください foo.sh:
if [ $1 == "string" ]; then
echo true
else
echo false
fi
の入力が foo.sh です STRING または StRiNg 結果は偽になります。
どのように私はのケースを無視することができます if 調子?
回答:
あなたが使っていると仮定 bash 4.0+:
${1,,}
さもないと、 tr または awk 動作するはずです:
var=$(echo "$1" | awk '{print tolower($0)}')
var=$(echo "$1" | tr '[:upper:]' '[:lower:]')
要約:
Awkは入力を取り込んで単に印刷する $0 (入力行全体)組み込みを使用した後 tolower() 関数。
Trは一目瞭然に見えますが、質問がある場合は私に知らせてください。
"$a"
declare 小文字の機能を持ちます。
declare -l str=$1
[[ $str = "string" ]] && echo true || echo false
nocasematch 使用できるシェルオプション
[[ "$1" == "string" ]]の代わりに[ $1 == "string" ]。それ以外の場合は、トラブルに巻き込まれます$1スペースが含まれているか空です。