Como você verifica o número de argumentos em Bash?

Como você verifica o número de argumentos em Bash?

Você pode fornecer qualquer número desejado de argumentos da linha de comando para seus scripts bash no Ubuntu 20.04 enquanto os executa. No entanto, às vezes os scripts são escritos de maneira tão dinâmica que mesmo o programador não sabe exatamente quantos argumentos serão fornecidos pelo usuário em tempo de execução, mas ele pode querer usar esse número total em algum lugar mais tarde nesse script.

Nesta situação, deve haver uma maneira pela qual você possa verificar o número total de argumentos passados ​​para qualquer script de bash em particular. Para isso, Bash tem uma variável especial, eu.e., $#. Para descobrir como essa variável especial funciona, você terá que passar por todos os exemplos compartilhados neste artigo.

Método de verificar o número de argumentos em Bash no Ubuntu 20.04:

Para explicar a você o método de verificar o número de argumentos fornecidos a um script de bash no Ubuntu 20.04, projetamos alguns exemplos discutidos abaixo:

Exemplo # 1: Imprimindo o número total de argumentos em Bash:

Para simplesmente imprimir o número total de argumentos passados ​​para um script de bash no Ubuntu 20.04, você pode escrever um script bash como o mostrado na imagem a seguir:

A variável especial $# sempre mantém o número total de argumentos passados ​​para qualquer script de bash específico.

Para testar este script, executamos -o com três argumentos ou parâmetros da seguinte forma:

$ Bash argumentos.sh 1 2 3

Aqui, argumentos.SH é o nome do nosso arquivo de script Bash, enquanto 1, 2 e 3 são os argumentos que passamos para este script Bash. Isso significa que o número total de argumentos neste caso de teste é "3". Vamos tentar descobrir se este script bash exibiu corretamente o número total de argumentos ou não.

Quando executamos esse script Bash, ele exibe o número total de argumentos passados, que podem ser vistos a partir da imagem mostrada abaixo:

Exemplo # 2: Imprimindo o número total de argumentos junto com os valores dos argumentos com parâmetros posicionais em Bash:

Agora, escreveremos um script de bash que imprimirá os valores dos argumentos passados ​​para um script e seu número total. Para fazer isso, o script bash é o seguinte:

Neste script Bash, primeiro imprimimos os valores dos três parâmetros posicionais. Isso significa que qualquer argumento que seja passado para este script de bash do terminal será armazenado nesses três parâmetros posicionais. Depois disso, simplesmente imprimimos o valor da variável especial $#.

Em nosso primeiro exemplo, executaremos este script com os mesmos argumentos que passamos para o script da Bash. Desta vez, quando executaremos nosso script bash, os valores dos três argumentos aprovados também serão exibidos no terminal junto com o número total, como você pode ver na imagem mostrada abaixo:

Exemplo # 3: Imprimir o número total de argumentos junto com os valores dos argumentos com a variável $@ especial em bash:

O objetivo deste exemplo é o mesmo do nosso segundo exemplo; No entanto, neste exemplo, usaremos outra variável especial, eu.e., $@, para imprimir os valores dos argumentos aprovados. Basicamente, a variável $@ Special pode manter todos os argumentos que são passados ​​para um script bash. Para entender isso, você pode dar uma olhada no seguinte script Bash que projetamos para você:

Neste script Bash, simplesmente imprimimos o valor da variável $@ Special, eu.e., Todos os argumentos aprovados e o valor da variável especial $#.e., o número total de argumentos aprovados no terminal.

Para ver como esse script de bash modificado funciona, novamente o executamos com os mesmos parâmetros que fizemos nos dois exemplos acima. Quando esse script foi executado, a saída acabou sendo exatamente a mesma que tivemos em nosso segundo exemplo.

Exemplo # 4: Imprimir o número total de argumentos junto com os valores dos argumentos com a variável especial $* em Bash:

Esta é mais uma versão modificada do nosso segundo exemplo, pois, neste exemplo, usaremos a variável especial $* para imprimir os valores dos argumentos aprovados no terminal. Como a variável $@ Special, a variável $* especial também pode manter os valores de todos os argumentos passados ​​para qualquer script de bash em particular. O script bash modificado é mostrado na imagem abaixo:

Neste script Bash, simplesmente imprimimos o valor da variável especial $*, i i.e., Todos os argumentos aprovados e o valor da variável especial $#.e., o número total de argumentos aprovados no terminal.

Para testar este script de bash e visualizar sua saída, executamos -o com os mesmos parâmetros que fizemos em nossos três primeiros exemplos. Desta vez também quando nosso script bash foi executado, sua saída foi a mesma do nosso segundo e terceiro exemplos, como você pode ver na imagem a seguir:

Exemplo # 5: Colocando um limite no número total de argumentos em Bash:

Finalmente, a variável especial $# também pode ser usada para limitar o número total de argumentos passados ​​para um script de bash no Ubuntu 20.04. Para entender esse fenômeno, você terá que passar pelo script bash mostrado na imagem abaixo:

Neste script Bash, temos uma declaração "se" aplicada à variável especial $#. Queríamos limitar o número de argumentos a "3". Se os argumentos forem menores que "3", uma mensagem de erro será impressa no terminal. Da mesma forma, se os argumentos forem maiores que "3", novamente uma mensagem de erro será impressa no terminal. No entanto, se os argumentos fornecidos forem iguais a "3" somente, os valores desses argumentos serão impressos no terminal.

Queríamos testar as três condições deste script de bash. Para isso, primeiro executamos este script com três parâmetros, e a saída correspondente é mostrada na imagem a seguir:

Depois disso, executamos esse script Bash com quatro argumentos, por causa da qual uma mensagem de erro foi impressa no terminal, como mostrado na imagem abaixo:

Finalmente, executamos esse script Bash com dois argumentos, por causa da qual uma mensagem de erro foi impressa novamente no terminal, como mostrado na imagem a seguir:

Conclusão:

A variável especial de $# permitirá que você descubra o número total de argumentos passados ​​para qualquer script de bash com muita facilidade. Ao verificar os exemplos compartilhados neste artigo, você teria uma idéia clara sobre o funcionamento desta variável especial. Portanto, agora você pode escrever scripts tão bash sem preocupações que, de alguma forma.04.