我在bash中编写了一些脚本,发现了一个奇怪的bug。我一直在Mac(El Capitan)上开发,一切工作都完美无瑕。但是在Ubuntu16.06服务器上的部署失败了,我不知道为什么。
我的代码如下
while ! [[ ${someVariable} =~ ^[a-zA-z0-9_-]{40}$ ]]
do
read someVariable
if ! [[ ${someVariable} =~ ^[a-zA-z0-9_-]{40}$ ]];then
echo 'try again'
fi
done
对于输入6lfmyb8taaaaacrz9bp-0gn9y4zkuyptj255-e8a,此操作失败。失败只发生在服务器上,而不发生在开发机器上。我有一种感觉,我错过了一些显而易见的东西。
最佳答案
你的射程有误。大写范围必须是a-z
这段代码适用于ubuntu 14.04
while ! [[ ${someVariable} =~ ^[a-zA-Z0-9_-]{40}$ ]]
do
read someVariable
if ! [[ ${someVariable} =~ ^[a-zA-Z0-9_-]{40}$ ]];then
echo 'try again'
fi
done