(1)
#!/bin/bash
read -p "Please input a character:" s
case $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
和!
,这些在[]
中的操作符有时可能会与文件测试操作符混淆。 -
字符串操作:
[[ ]]
还支持字符串操作,比如子串检查、长度检查等。