我需要bash檢查CI_COMMIT_REF_NAME
是否匹配字符串master
或三部分版本號如1.3.5
,1.1.11
等。Bash:使用正則表達式檢查字符串是否看起來像三部分版本號
這裏是我的嘗試:
#!/bin/bash
CI_COMMIT_REF_NAME=1.1.4
if [ $CI_COMMIT_REF_NAME == 'master' ] || [[ $CI_COMMIT_REF_NAME =~ ^([0-9]{1,2}\.){2}[0-9]{1,2}$ ]]
then
echo "true"
else
echo "false"
fi
預期的輸出是true
,但我得到false
。設置變量爲master
按預期工作,所以錯誤必須是我的正則表達式。
我在做什麼錯?
我增加了模式描述。是的,括號應該只包含您需要量化的模式。 –
感謝您的幫助! –