$ {p: 2: 1} Significado no script de shell

0

Alguém pode me dizer o significado de ${p:2:1} no script de shell como em:

var1=""
for p in [1,2,3,4]
do
    var1="${var1} ${p:2:1}"
done
    
por Siddhartha Dasari 09.05.2018 / 15:13

2 respostas

7

Essa é uma expansão de parâmetro (não padrão) ( Manual do Bash) , em particular da forma:

${parameter:offset:length}

que é descrito como "expansão de substring". Ele extrai caracteres da variável começando em offset (iniciando em zero) e indo para length caracteres. No seu caso, ${p:2:1} extrai o terceiro caractere.

Exemplo:

$ p=abcd
$ echo "${p:2:1}"
c
    
por 09.05.2018 / 15:18
0

Essa é uma substring. Está tirando do segundo caractere (contando a partir de 0) da string p uma substring de comprimento 1.

    
por 09.05.2018 / 15:15