我只是不能将$ move与正则表达式匹配,move是国际象棋的棋步。 “ a2 a4”。它总是到其他部分...谢谢您的帮助
read move
if [[ "$move" =~ "[a-h][1-8] [a-h][1-8]" ]] ; then
CheckMove "$move" 1
else
printf "Invalid move format \n"
fi
答案 0 :(得分:3)
请勿在{{1}}条件内引用您的正则表达式模式。这使其像一个简单的字符串相等性测试。使用无引号的变量:
if
在双方括号内,您也不需要引用 read move
pattern="[a-h][1-8] [a-h][1-8]"
if [[ $move =~ $pattern ]] ; then
变量。
此外,请勿在Bash特定的脚本中使用单个方括号。
$move
顺便说一下,我看不到该变量的设置位置。