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 argumentoPortanto, 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.