Como passo o argumento em um script Bash?

How Do I Pass Argument Bash Script



A maioria dos usuários do Linux Mint 20 ficam presos ao passar um argumento em um script bash. Você pode passar os argumentos para qualquer script bash quando ele for executado. Existem várias maneiras simples e úteis de passar argumentos em um script bash. Neste guia de artigo, iremos informá-lo 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, por exemplo, file.sh.







$tocarnome do arquivo



Abra este arquivo recém-criado e adicione algum script bash a ele. Eu adicionei algumas variáveis ​​padrão, por exemplo, $ 1, $ 2 e $ 3 conseqüentemente. Quaisquer argumentos passados ​​pelo terminal serão armazenados nas variáveis ​​indicadas.







Você deve executar este arquivo usando o comando ./ seguido de alguns argumentos. Como você pode ver na imagem, ao passar 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 fazê-lo.



$sudo chmod+ x nome do arquivo

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

Passando o nome do script Shell como argumento:

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

Ao executar o mesmo comando ./ shell script, o nome do seu script de shell, por exemplo, ./filename será armazenado na variável $ 0 como um argumento.

Passando argumentos como uma matriz para variável:

Começando com o mesmo arquivo file.sh, você deve adicionar algumas linhas extras no script antigo. Declare uma variável chamada array. Adicione uma variável padrão [email protected] que armazenará os argumentos inseridos pelo usuário como um array. Esses argumentos serão analisados ​​em um array de variáveis. A última linha exibirá todos os argumentos da matriz de variáveis ​​classificados pelo número do índice.

Execute o script ./ shell. Você verá que ele exibirá os argumentos ou valores armazenados como uma matriz em [email protected] analisada na variável array, mas não o nome do script de 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. Apenas remova o $ {array [3]} da última linha como está claro na imagem.

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

Você também pode obter o mesmo resultado substituindo a última linha do script bash por uma única palavra. Você apenas tem que adicionar [email protected] na instrução echo, e ele exibirá os argumentos presentes neste array de variável.

Portanto, 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 passados ​​pelo usuário, você também pode fazer isso. Para este propósito, você apenas tem que substituir [email protected] com $ # em echo.

Executando novamente o comando ./, você verá agora a figura inteira dos argumentos passados ​​para o script. No nosso caso, 3 argumentos são passados ​​como valor.

Criar saída de linha por linha de argumentos:

Crie um novo arquivo test.sh no diretório inicial. Adicione o script bash conforme mostrado.

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

Você deve executar o comando chmod para conceder privilégios sudo a este arquivo. Depois disso, execute o comando ./ shell script novamente. E você obterá a saída de argumentos classificada linha por linha.

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

Se você quiser limitar a variável usando seu número de índice, pode fazer isso com muita facilidade. Adicione chaves após o sinal $ e adicione o número do índice do 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 limit, você obterá um valor de argumento vazio. Por exemplo, forneci 4 argumentos, mas forneci o valor de 05 argumento a ser exibido. Nesta situação, a variável será exibida vazia porque o quinto argumento não foi passado.

Mas quando você passa o número igual ou maior de argumentos no comando, você obterá o valor exibido no resultado conforme mostrado.

Verificando os argumentos de valor específico:

Crie um novo arquivo com o nome Check.sh em seu diretório inicial. Adicione o mesmo script bash conforme mostrado na imagem abaixo. Neste script, temos uma variável var para armazenar o valor do argumento passado pelo usuário. Então temos uma instrução if, que verificará se o valor do argumento corresponde ou não. Se o valor do argumento corresponder ao valor fornecido entre parênteses, a primeira instrução de eco será executada. Se o valor não corresponder, a segunda instrução de eco será executada.

Quando executamos o comando shell script, ele gerará um erro. Usando o comando chmod, podemos corrigir esse erro.

Depois disso, execute o script de shell para o arquivo específico com algum valor de argumento. Em nosso caso, fornecemos Aqsa como um valor de argumento, que é igual ao valor exibido entre parênteses. Portanto, o script bash executará a primeira instrução echo conforme mostrado.

Por outro lado, se você fornecer os diferentes valores de argumento no script de shell, ele exibirá a outra instrução echo. Aqui, adicionei Rimsha como um valor de argumento, que é diferente do valor fornecido na instrução if. Portanto, o script bash executará a segunda instrução echo.

Conclusão:

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