npmv="3.4.5"
major=${npmv%%.*}
printf 'The major version number is %s\n' "$major"
A substituição do parâmetro ${variable%%pattern}
removerá a sequência de sufixo maior correspondente a pattern
do valor de $variable
. O padrão é tratado como um padrão de globalização de nome de arquivo, não uma expressão regular. Esta é uma substituição de parâmetro padrão que funcionará em todos os shells do POSIX.
A mesma coisa, mas com um único %
, removeria apenas o .5
final da string no exemplo (o padrão de sufixo de correspondência menor ). Para strings de prefixo, use #
em vez de %
.
Veja também a seção sobre expansões de parâmetros no padrão POSIX e sua manual do shell.