Como faço para passar o argumento em um script bash?

Como faço para passar o argumento em um script bash?
A maioria dos usuários do Linux Mint 20 se vê presa ao passar uma discussão em um script de basquete. Você pode passar os argumentos para qualquer script de bash quando for executado. Existem várias maneiras simples e úteis de passar argumentos em um script de bash. Neste guia do artigo, informaremos sobre algumas maneiras muito fáceis de passar e usar argumentos em seus scripts bash.

Passando argumentos usando variáveis ​​padrão:

Crie um novo arquivo com qualquer nome usando o comando "touch", e.g., "arquivo.sh ”.

$ touch filename

Abra este arquivo recém -criado e adicione algum script bash a ele. Eu adicionei algumas variáveis ​​padrão, e.g. "$ 1", "$ 2" e "$ 3" consequentemente. Quaisquer que sejam os argumentos que serão passados ​​através do terminal serão armazenados nas variáveis ​​declaradas.

Você tem que executar este arquivo usando o “./”Comando seguido de alguns argumentos. Como você pode ver na imagem que, quando passei os argumentos, ocorre um erro: permissão negada. Isso ocorre porque este arquivo não tem direitos de execução.

$ ./nome do arquivo argumento1 argumento2 argumento

Portanto, para conceder os direitos de execução a este arquivo, use o comando sudo "chmod" para fazer isso.

$ sudo chmod +x nome do arquivo

Agora, execute novamente o arquivo usando o mesmo comando acima. Desta vez, forneci argumentos diferentes. Você verá os argumentos recém -passados ​​são armazenados nas variáveis ​​padrão.

Passando o nome do script do shell como argumento:

Agora, usando o mesmo arquivo antigo “Arquivo.sh ”com uma pequena mudança em suas variáveis ​​padrão. Você deve adicionar a variável "$ 0" no script, como mostrado.

Ao executar o mesmo “./”Comando de script shell, o nome do seu script de shell, e.g. ““./nome do arquivo "será armazenado na variável" $ 0 "como argumento.

Passando argumentos como uma matriz para a variável:

Começando com o mesmo arquivo “arquivo.sh ”, você deve adicionar algumas linhas extras no script antigo. Declare uma variável chamada "Array". Adicione uma variável padrão "$@" que armazenará os argumentos inseridos pelo usuário como uma matriz. Esses argumentos serão analisados ​​para a variável "Array". A última linha exibirá todos os argumentos da variável "Array" classificada pelo número do índice.

Executar o “./”Shell script. Você verá que ele exibirá os argumentos ou valores armazenados como uma matriz em "$@" analisada para variável "Array", mas não o nome do script da shell na segunda instrução "Echo". Você terá a seguinte saída.

$ ./nome do arquivo argumento1 argumento2 argumento

Use o mesmo arquivo com o mesmo script. Basta remover o "$ Array [3]" da última linha tão clara na imagem.

Depois de executar o “./”Comando, você verá uma saída semelhante à do exemplo acima, sem alteração.

Você também pode obter o mesmo resultado substituindo a última linha do script Bash por uma única palavra. Você só precisa adicionar "$@" na declaração de eco e exibirá os argumentos presentes nesta matriz variável.

Então, executando o “./”Comando novamente, você obterá os mesmos resultados.

Verifique o número total de argumentos aprovados:

Pelo contrário, se você quiser saber o número total de argumentos aprovados pelo usuário, você também pode fazer isso. Para esse fim, você só precisa substituir "$@" por "$#" em "Echo".

Novamente executando o “./”Comando, agora você vai ver toda a figura de argumentos passados ​​para o script. No nosso caso, 3 argumentos são passados ​​como valor.

Crie a saída de linha por linha dos argumentos:

Crie um novo arquivo “Teste.sh ”no diretório doméstico. Adicione o script bash como mostrado.

Agora execute o mesmo comando antigo com argumentos diferentes. Em primeiro lugar, você verá o erro: permissão negada.

Você tem que executar o comando "chmod" para conceder este arquivo privilégios de sudo. Depois disso, execute o “./”Comando de script do shell novamente. E você receberá a linha por linha de saída de argumentos.

Limite a variável via número do índice de argumento:

Se você deseja limitar a variável usando seu número de índice, pode fazê -lo com muita facilidade. Adicione suportes encaracolados após o sinal "$" e adicione o número do índice de argumento que você deseja exibir antes de outros argumentos.

Se os argumentos fornecidos pelos usuários forem menores que o número do índice fornecido na variável limite, você obterá um valor de argumento vazio. Como exemplo, eu forneci 4 argumentos, mas dei o valor do argumento "05" a ser exibido. Nesta situação, a variável será exibida vazia porque o quinto argumento não foi aprovado.

Mas quando você passa o número igual ou mais de argumentos no comando, você receberá o valor exibido no resultado como mostrado.

Verificando argumentos específicos de valor:

Faça um novo arquivo com o nome “Verifique.sh ”em seu diretório doméstico. Adicione o mesmo script Bash, como mostrado na imagem abaixo. Neste script, temos uma variável "var" para armazenar o valor do argumento aprovado pelo usuário. Então temos uma declaração "se", que verificará o valor do argumento a ser correspondente ou não. Se o valor do argumento for comparado com o valor fornecido nos parênteses, a primeira declaração "eco" será executada. Se o valor não corresponder, a segunda declaração "eco" será executada.

Quando executamos o comando script shell, ele levantará um erro. Ao usar o comando "chmod", podemos corrigir este erro.

Depois disso, execute o script do shell para o arquivo específico com algum valor de argumento. No nosso caso, fornecemos "aqsa" como valor de argumento, que é o mesmo que o valor exibido nos parênteses. Portanto, o script bash executará a primeira declaração "eco", como mostrado.

Por outro. Aqui, eu adicionei "rimsha" como um valor de argumento, que é diferente do valor fornecido na declaração if. Portanto, o script bash executará a segunda declaração "eco".

Conclusão:

Espero que este guia tenha ajudado você a ter uma forte aderência sobre como passar argumentos para variáveis ​​padrão, aprovar o valor do argumento como uma matriz para uma variável, obter o número total de argumentos passados, linha por linha de saída dos argumentos, limitar o argumento saída usando o número do índice, verificando o argumento do valor específico e muito mais.