githubEdit

Shell Script

1. Argumentos:

Shell scripts podem receber argumentos na linha de comando. Esses argumentos são acessados usando $1, $2, $3, ..., $9, ${10}, ${11}, etc. $0 representa o nome do script.

Variáveis Especiais de Argumentos:

  • $0: Nome do script.

  • $1, $2, ...: Primeiro, segundo, terceiro argumento, e assim por diante.

  • ${10}, ${11}, ...: Argumentos além do nono (devem ser acessados com chaves { }).

  • $@: Todos os argumentos como itens separados (preserva espaços e aspas).

  • $*: Todos os argumentos como uma única string.

  • $#: Número total de argumentos fornecidos.

Exemplos:

#!/bin/bash

echo "Nome do script: $0"
echo "Primeiro argumento: $1"
echo "Segundo argumento: $2"
echo "Todos os argumentos: $@"
echo "Todos os argumentos: $*"
echo "Número de argumentos: $#"

# Exemplo com mais de 9 argumentos
echo "Décimo argumento: ${10}"

Execução e Saída:

Argumento será: lista de compras arroz feijao leite macarrao carne ovos "azeite e creme de leite" fim

2. Condicionais (if, elif, else):

A estrutura condicional if permite executar blocos de código com base em uma condição.

Estrutura Básica:

Exemplo: Verificar Idade

Operadores Relacionais:

  • -eq: Igual.

  • -ne: Diferente.

  • -gt: Maior que.

  • -lt: Menor que.

  • -ge: Maior ou igual que.

  • -le: Menor ou igual que.

Testando se um argumento foi fornecido:

Para verificar se um argumento foi fornecido, use -z (string vazia) ou -n (string não vazia):

Ou

3. Loops (for):

Estrutura Básica do for Loop:

Imagine que você tem uma lista de compras com vários itens, como "Arroz", "Feijão", "Leite" e "Pão". Você vai ao supermercado e pega um item da lista por vez, riscando cada um após colocá-lo no carrinho. Quando todos os itens da lista estão riscados, suas compras estão completas!

A lista:

Vamos passar no argumento a lista e vamos imprimir cada um dos itens. Já sabemos como pegar todos argumento, utilizando $@

  1. Iteração 1:

    • item = "arroz".

    • Executa: echo "Pegando arroz no supermercado.".

  2. Iteração 2:

    • item = "feijao".

    • Executa: echo "Pegando feijao no supermercado.".

  3. Iteração 3:

    • item = "leite".

    • Executa: echo "Pegando leite no supermercado.".

  4. Fim:

    • Não há mais itens. O loop termina.

Fluxograma básico:

Saída:

Iterações com Saída Visual

  1. Input no script:

  2. Saída esperada:

  3. Forma Visual (Iterações):

Mais exemplo:

Explicação detalhada do for in do done:

  • for variável in lista: Inicia o loop. A variável (item, fruta, i nos exemplos) assume o valor de cada elemento da lista a cada iteração.

  • do: Marca o início do bloco de código a ser executado para cada iteração.

  • comandos: Os comandos dentro do bloco do...done são executados para cada elemento da lista.

  • done: Marca o fim do bloco de código do loop.

Exemplo com saída:

4. Diferença Entre $@ e $*

  • $@: Preserva cada argumento como um item separado, mesmo se contiver espaços ou aspas.

  • $*: Trata todos os argumentos como uma única string, o que pode ser problemático para argumentos com espaços.

Exemplo Prático:

Execução e Saída:

Saída:

Last updated

Was this helpful?