ユーザーの入力を受け取るためのスクリプトを書きます。スクリプトは大文字と小文字を区別しないでください。
このスクリプトを考えてください 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
スペースが含まれているか空です。