有人可以解释为什么下面的bash代码会回显“选择是一个数字!”。当我输入例如在读取提示下显示“ 1”:
read choice
re='^[0-9]+$'
if [[ $choice =~ $re ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
...,但是没有中间$re
变量的相同代码将回显“选择不是数字!”:
read choice
if [[ $choice =~ '^[0-9]+$' ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
?
答案 0 :(得分:5)
如果将=~
的右侧用引号引起来,则右侧将被视为字符串而不是正则表达式。