Na verdade, essa construção:
[[ $version =~ ^1\.+ ]] && versionFlag=1
é facilmente estendido para suportar o caso "sem correspondência"; basta fazer isso:
[[ $version =~ ^1\.+ ]] && versionFlag=1 || versionFlag=0
Incidentalmente, observe a mudança de '*' para '+' na regex. Usando a estrela, a regex ainda corresponderá incorretamente em um valor de versão de "10". (O modificador '*' significa "corresponde a zero ou mais ocorrências", isto é, você ainda não precisa ter um ponto decimal; o modificador '+' significa "corresponde a uma ou mais ocorrências"). , significa que "1" (ou seja, um valor sem um decimal) não corresponderá a ; isso pode ou não ser um problema para seu aplicativo.
Existe também uma maneira de fazer isso sem usar o operador regex-match, caso você não o tenha; tente isso:
[[ ${version#1.} != ${version} ]] && versionFlag=1 || versionFlag=0
Esta é apenas uma correspondência de padrões, não uma regex, então se você realmente precisa da funcionalidade regex, ela não funcionará, mas para coisas simples, é ótimo. (Se você não estiver familiarizado com essa forma de expansão de parâmetro, a construção "$ {version # 1.}" Expande para o valor de "version", mas com o padrão post - '#' removido do início do valor se estava originalmente lá Exemplo: Se "version" tem um valor de "1.03", o resultado de "$ {version # 1.}" é "03". Como isso difere do valor original, o "!=" teste é bem sucedido.)