O que $#
significa com casca?
Eu tenho código como
if [ $# -eq 0 ]
then
Quero entender o que $#
significa, mas a pesquisa no Google é muito ruim para pesquisar esse tipo de coisa.
shell
shell-script
BufBills
fonte
fonte
Respostas:
Você sempre pode verificar a página de manual do seu shell.
man bash
diz:Portanto, um script de shell pode verificar quantos parâmetros são fornecidos com código como este:
fonte
man
quase tudo, inclusiveman
ele próprio. Também tenteapropos
algum tempo.info
a página de manual ou informações adicionais (muito detalhadas e compartimentadas) se os pacotes tiverem alguma coisaNa realidade,
Tão juntos
Assim, você pode usar
$#
para verificar o número de argumentos / parâmetros passados como você e lidar com qualquer situação inesperada.Da mesma forma, temos
etc.
fonte
Isso é
o número de parâmetros com os quais o script foi chamado
o número de parâmetros que foram definidos no script por
set -- foo bar
(quando usado em uma função) o número de parâmetros com os quais uma função foi chamada (
set
também funcionaria lá).Isso é explicado na página de manual do bash no bloco "Parâmetros especiais".
fonte