Qual é o significado de ## * no shell script? [duplicado]

4

Script:

text="//ABC/REC/TLC/SC-prod/1f9/20/00000000957481f9-08d035805a5c94bf"

echo ${text##*/}

Aqui, qual é o significado da segunda linha no script de duas linhas acima?

    
por Pranjalee 31.12.2014 / 10:55

1 resposta

9

Isso é Substituição e / ou expansão de parâmetros . Do link:

${var#Pattern}

Remova de $ var a parte mais curta de $ Pattern que corresponde ao front end de $ var.

${var##Pattern}

Remova de $ var a parte mais longa de $ Pattern que corresponde ao front end de $ var.

Portanto, ${text##*/} remove do texto tudo antes do último / . É útil obter o nome de base dos diretórios, por exemplo.

(Há também ${var%Pattern} / ${var%%Pattern} para remover o padrão que corresponde ao backend de $var )

    
por 31.12.2014 / 10:59