(1)
#!/bin/bashread -p "Please input a character:" scase $s in[0-9])echo 数字;;[a-z])echo 小写字母;;[A-Z])echo 大写字母;;
esac
演示
(2)
#!/bin/bash read -p "请输入一个字符: " char if [[ $char =~ [A-Z] ]]; then echo "你输入的是大写字母。"
elif [[ $char =~ [a-z] ]]; then echo "你输入的是小写字母。"
elif [[ $char =~ [0-9] ]]; then echo "你输入的是数字字符。"
else echo "你输入的不是大写字母、小写字母或数字字符。"
fi
在Bash shell脚本中,[[ ]] 是一个条件表达式,它是test命令的一个扩展,提供了更强大且灵活的字符串和模式匹配功能。与老的[]测试结构相比,[[ ]]有以下几点优势:
-
字符串比较:
[[ ]]支持直接的字符串比较和模式匹配,而[]通常与=、!=等操作符结合使用来进行字符串比较。 -
模式匹配:
[[ ]]使用=~操作符来进行正则表达式匹配,这是[]所不具备的。 -
逻辑操作符:
[[ ]]支持更丰富的逻辑操作符,如&&、||,以及!来进行逻辑否定。而[]则使用-a、-o和!,这些在[]中的操作符有时可能会与文件测试操作符混淆。 -
字符串操作:
[[ ]]还支持字符串操作,比如子串检查、长度检查等。