我正在尝试编写一个脚本来捕获用户输入。该脚本应该忽略大小写。
考虑这个脚本foo.sh
:
if [ $1 == "string" ]; then
echo true
else
echo false
fi
如果输入的foo.sh
是STRING
或者StRiNg
结果将为假。
我怎样才能忽略条件中的情况if
?
答案1
假设您正在使用bash 4.0+
:
${1,,}
否则,tr
或者awk
应该工作:
var=$(echo "$1" | awk '{print tolower($0)}')
var=$(echo "$1" | tr '[:upper:]' '[:lower:]')
摘要:
Awk 接收输入并
$0
使用内置tolower()
函数后简单地打印(整个输入行)。Tr 看起来很不言自明,但如果您对此有任何疑问,请告诉我。
答案2
declare
具有小写功能:
declare -l str=$1
[[ $str = "string" ]] && echo true || echo false