我在bash脚本中使用case,但我想知道正则表达式是什么,以匹配案例的小写或大写单词。
例如:
case $name in
JOHN)
echo "hi" ;;
JOE)
echo "bye" ;;
*)
echo "nothing" ;;
esac
即使$ name等于john,我想匹配JOHN。
谢谢
答案 0 :(得分:3)
在测试前将$name
转换为大写,即
case "${name^^}" in
或(如果使用超过4的bash版本)
case "$(tr '[a-z]' '[A-Z]' <<< "$name")" in
答案 1 :(得分:2)
您可以使用:
shopt -s nocasematch
<强>测试强>
s='john'
shopt -s nocasematch
[ "$s" == "JOHN" ]] && echo "matched" || echo "no match"
matched
shopt -u nocasematch
[ "$s" == "JOHN" ]] && echo "matched" || echo "no match"
no match