Usando variáveis de argumento:
A variável do argumento começa em $ 0. O nome do arquivo de script principal é armazenado em $ 0, que recebe valores de argumento de argumentos de linha de comando. Se dois argumentos forem passados na linha de comando, os valores dos argumentos serão recebidos nas variáveis $ 1 e $ 2 sequencialmente.
Exemplo -1: Enviando três valores numéricos como argumentos
Crie um arquivo bash e adicione o código a seguir. O script receberá três valores de argumento e os armazenará em $ 1, $ 2 e $ 3. Ele contará o número total de argumentos, imprimirá os valores dos argumentos com loop e sem loop. Por último, imprima a soma de todos os valores de argumento.
#! / bin / bash
# Contando o número total de argumentos
jogou fora 'Número total de argumentos: $ #'
# Lendo valores de argumento individualmente
jogou fora 'Valor do primeiro argumento: $ 1'
jogou fora 'Segundo valor de argumento: $ 2'
jogou fora 'Terceiro valor de argumento: $ 3'
# Lendo valores de argumento usando loop
paraargvalno '[email protegido]'
Faz
jogou fora -n '$ argval'
feito
# Adicionando valores de argumento
soma= $(($ 1+$ 2+$ 3))
# imprime o resultado
jogou fora -E ' nResultado da soma =$ soma'
Execute o arquivo bash com três valores de argumento numéricos.
$bashcmdline1.shcinquenta 35 quinze
Exemplo -2: Tomando o nome do arquivo como argumento
Crie um arquivo bash e adicione o seguinte código para contar o número total de caracteres de qualquer arquivo. Aqui, o nome do arquivo será passado como argumento da linha de comando.
#! / bin / bashnome do arquivo=$ 1
totalchar=``banheiro -c $ filename``
jogou fora 'Número total de caracteres são$ totalchar'
Execute o script bash com o nome do arquivo como valor de argumento único e execute outro comando para verificar o número total de caracteres desse arquivo. Aqui, o arquivo employee.txt é usado como valor de argumento. O número total de caracteres do arquivo employee.txt é 204.
$bashcmdline2.sh employee.txt
$banheiro -cfuncionário.txt
Usando a função getopts:
Se você deseja armazenar dados em um banco de dados ou qualquer arquivo ou criar um relatório em um formato específico baseado em valores de argumentos de linha de comando, getopts função é a melhor opção para realizar a tarefa. É uma função embutida do Linux. Portanto, você pode usar facilmente essa função em seu script para ler dados formatados da linha de comando.
Exemplo -1: Lendo argumentos pela função getopts
Crie um arquivo bash e adicione o seguinte script para entender o uso de getopts função. A função ‘getopts’ é usada com o loop while para ler opções de argumento de linha de comando e valores de argumento. Aqui, são usadas 4 opções que são ‘I’, ‘n’, ‘m’ e 'E' . A instrução case é usada para combinar a opção particular e armazenar o valor do argumento em uma variável. Finalmente, imprima os valores da variável.
#! / bin / bashenquanto getopts ':em mim:'nervoso;Faz
caso $ arg no
eu) EU IRIA=$ OPTARG;;
n) Nome=$ OPTARG;;
m) Data de fabricação=$ OPTARG;;
E) Data de validade=$ OPTARG;;
esac
feito
jogou fora -E ' n$ ID $ Name $ Manufacturing_date $ Expire_date n'
Execute o arquivo com as seguintes opções e valores de argumento. Aqui, p100 é o valor da opção -i, 'Bolo Quente' é o valor da opção -n, '01 -01-2018 ′ é o valor da opção -m e '06 -01-2018 ′ é o valor de - e opção.
$bashcmdline3.sh-eup001-n 'Bolo quente' -m '01 -01-2018 ' -E '06 -01-2018 '
Quando você precisa enviar valores simples em um script, é melhor usar variáveis de argumento. Mas se você deseja enviar dados de forma formatada, é melhor usar a função getopts para recuperar os valores dos argumentos. Para mais informações veja o vídeo !