mun*_*ish 4 shell string shell-script test
我下面的代码不起作用:
stringZ=" "
if [[ "$stringZ" == ^[[:blank:]][[:blank:]]*$ ]];then
echo string is blank
else
echo string is not blank
fi
Run Code Online (Sandbox Code Playgroud)
结果:
string is not blank # wrong
Run Code Online (Sandbox Code Playgroud)
我该如何测试?
Sté*_*las 10
无需bash
特定代码:
case $string in
(*[![:blank:]]*) echo "string is not blank";;
("") echo "string is empty";;
(*) echo "string is blank"
esac
Run Code Online (Sandbox Code Playgroud)
来自man bash
:
可以使用额外的二元运算符 =~,其优先级与 == 和 != 相同。使用时,运算符右侧的字符串被视为扩展正则表达式并进行相应匹配(如 regex(3) 中所示)。
所以正则表达式匹配运算符应该是=~
:
if [[ "$stringZ" =~ ^[[:blank:]][[:blank:]]*$ ]];then
echo string is blank
else
echo string is not blank
fi
Run Code Online (Sandbox Code Playgroud)
您可以通过使用+
量词(意思是前一个实体 1 次或多次)来减少正则表达式的冗长:
if [[ "$stringZ" =~ ^[[:blank:]]+$ ]]; then
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7024 次 |
最近记录: |