有人可以解释为什么下面的bash代码会回显“选择是一个数字!”。当我在读取提示下键入“ 1”时:
read choice
re='^[0-9]+$'
if [[ $choice =~ $re ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
Run Code Online (Sandbox Code Playgroud)
...但是没有中间$re变量的相同代码将回显“选择不是数字!”:
read choice
if [[ $choice =~ '^[0-9]+$' ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
Run Code Online (Sandbox Code Playgroud)
?