É uma expansão de parâmetro que retorna o comprimento do parâmetro ou o número de elementos em uma matriz ou o número de parâmetros posicionais.
Por favor, leia o manual do seu shell. O seguinte é do manual bash
:
${#parameter}
The length in characters of the value of
parameter
is substituted. Ifparameter
is*
or@
, the value substituted is the number of positional parameters. Ifparameter
is an array name subscripted by*
or@
, the value substituted is the number of elements in the array. Ifparameter
is an indexed array name subscripted by a negative number, that number is interpreted as relative to one greater than the maximum index of parameter, so negative indices count back from the end of the array, and an index of -1 references the last element.
E também, por favor não tenha o hábito de trabalhar em um shell raiz interativo. É perigoso e imprudente na melhor das hipóteses. Use sudo
com moderação e somente em situações que exijam privilégios elevados. Brincar com bash
é algo que você definitivamente pode fazer como um usuário comum não-root.
Nos últimos anos, usei apenas um shell de raiz interativa para adicionar manualmente um único usuário para mim. É um trabalho de 2 minutos e então eu nunca preciso ver um prompt #
novamente nessa máquina.