É 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 bash
manual:
${#parameter}
O comprimento em caracteres do valor de parameter
é substituído . Se parameter
for *
ou @
, o valor substituído é o número de parâmetros posicionais. Se
parameter
é um nome de matriz inscrito por *
ou @
, o valor substituído é o número de elementos na matriz. Se
parameter
é um nome de matriz indexado inscrito por um número negativo, esse número é interpretado como relativo a um maior que o índice máximo do parâmetro, portanto, os índices negativos são contados a partir do final da matriz, e um índice de -1 faz referência ao último elemento .
E também, por favor, não faça um hábito de trabalhar em um shell de root interativo. É perigoso e imprudente na melhor das hipóteses. Use sudo
com moderação e apenas em situações que exijam privilégios elevados. Brincar bash
é algo que você definitivamente pode fazer como um usuário não root comum.
Nos últimos anos, usei apenas um shell raiz interativo para adicionar manualmente um único usuário para mim. É um trabalho de 2 minutos e nunca mais preciso receber um #
aviso nessa máquina.