0Pricing
Linux Command Line & Bash Scripting Mastery · Aula

Argumentos e Opções de Scripts ($@, $#, getopts)

Aprenda a passar argumentos para seus scripts e analisar opções da linha de comando usando variáveis especiais e 'getopts'.

Argumentos e Opções de Scripts ($@, $#, getopts) é uma aula grátis de Linux Command Line & Bash Scripting Mastery no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Command Line & Bash Scripting Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

Argumentos de scripts: por que usá-los?

Você já usou um comando como ls -l ou cp file1 file2? -l, file1 e file2 são todos argumentos! Eles informam ao comando o que fazer ou sobre o que atuar.

Nos scripts Bash, os argumentos tornam seus scripts flexíveis. Em vez de codificar valores diretamente, seu script pode aceitar entradas diretamente da linha de comando quando é executado.

Acessando argumentos posicionais

Quando você executa um script com argumentos, o Bash os atribui automaticamente a variáveis especiais chamadas parâmetros posicionais.

  • O primeiro argumento é $1.
  • O segundo argumento é $2.
  • E assim por diante, até $9.

Para argumentos além do nono, use chaves, como em ${10}, ${11} etc. Essas variáveis contêm os valores passados ao seu script.

Demonstração: argumentos posicionais

Vamos ver como acessar esses argumentos em um script. Salve isto como greet.sh e execute-o com ./greet.sh Alice Bob.

#!/bin/bash

echo "Hello, $1!"
echo "Welcome, $2."
echo "The third argument (if any) is: $3"

`$0` e `$#`: informações do script

O Bash fornece mais algumas variáveis especiais que oferecem informações sobre o próprio script e seus argumentos:

  • $0: contém o nome do script que está sendo executado. É útil para mensagens de erro ou registros.
  • $#: essa variável contém o número total de argumentos posicionais passados ao script.

Essas variáveis ajudam a tornar seus scripts mais robustos e fáceis de usar.

Demonstração: `$0` e `$#`

Execute este script com diferentes quantidades de argumentos, por exemplo, ./info.sh one two three ou simplesmente ./info.sh.

#!/bin/bash

echo "Script name: $0"
echo "Number of arguments received: $#"

`$@` versus `$*`: todos os argumentos

Às vezes, você precisa se referir a todos os argumentos de uma só vez. O Bash oferece duas formas:

  • $@: é expandido para argumentos separados. Quando colocado entre aspas duplas ("$@"), cada argumento permanece uma palavra distinta, mesmo que contenha espaços. Geralmente, essa é a forma preferida para laços.
  • $*: é expandido para uma única string com todos os argumentos. Quando colocado entre aspas duplas ("$*"), todos os argumentos são combinados em uma única palavra, separados pelo primeiro caractere de IFS (separador interno de campos, geralmente um espaço).

Use sempre "$@" ao percorrer argumentos para preservar os espaços!

Demonstração: percorrendo com `"$@"`

Este script demonstra como "$@" lida corretamente com argumentos que contêm espaços. Execute-o assim: ./loop_args.sh hello "world wide" web

#!/bin/bash

echo "Processing arguments with \"$@\":"
for arg in "$@"; do
  echo "  Argument: [$arg]"
done

echo "\nProcessing arguments with \"$*\":"
for arg in "$*"; do
  echo "  Argument: [$arg]"
done

Opções: além dos argumentos posicionais

Os argumentos posicionais são ótimos para casos simples, mas e se seu script precisar de sinalizadores opcionais ou parâmetros nomeados, como -v para modo detalhado ou -f filename?

É nesse ponto que entram as opções de linha de comando. Elas tornam os scripts mais flexíveis e fáceis de usar, permitindo que os usuários especifiquem configurações em qualquer ordem.

O Bash fornece o comando getopts especificamente para analisar esses tipos de opções.

Sintaxe de `getopts`: `optstring`

A sintaxe básica de getopts é: getopts optstring variable.

  • optstring: uma string com caracteres de opção válidos. Se uma opção exigir um argumento, como -f filename, coloque dois-pontos após o caractere, por exemplo, f:.
  • variable: um nome de variável no qual getopts armazenará o caractere da opção processada no momento, por exemplo, opt.

getopts também define OPTARG para os argumentos das opções e OPTIND para o índice do próximo argumento.

Demonstração: `getopts` básico

Este script processa as opções -v (modo detalhado) e -f (arquivo). Tente executá-lo: ./options.sh -v -f mydata.txt -x ou ./options.sh -vf mydata.txt

#!/bin/bash

while getopts "vf:" opt; do
  case $opt in
    v)
      echo "Verbose mode enabled."
      ;;
    f)
      echo "File specified: $OPTARG"
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
  esac
done

Verificação rápida: variáveis de argumentos

Considere o script a seguir e a forma como ele é executado:

#!/bin/bash
echo "Script: $0"
echo "Count: $#"
for arg in "$@"; do
  echo "Arg: $arg"
done

Se você executar: ./myscript.sh "Hello World" 123

Qual será a saída?

Revisão: argumentos e opções

Parabéns! Você aprendeu a tornar seus scripts Bash muito mais versáteis:

  • Argumentos posicionais: use $1, $2 etc. para acessar os argumentos diretamente.
  • Variáveis especiais: $0 para o nome do script, $# para a quantidade de argumentos e "$@" para percorrer todos os argumentos com segurança.
  • Opções de linha de comando: use getopts para analisar opções nomeadas, como -v, e seus argumentos, como -f filename, tornando seus scripts mais robustos e fáceis de usar.

Pratique o uso desses recursos em seus próprios scripts para criar ferramentas de linha de comando poderosas e flexíveis!

Perguntas Frequentes

A aula “Argumentos e Opções de Scripts ($@, $#, getopts)” é grátis?

Sim — o texto completo de “Argumentos e Opções de Scripts ($@, $#, getopts)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Command Line & Bash Scripting Mastery, atualize para CoddyKit PRO. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

O que vou aprender em “Argumentos e Opções de Scripts ($@, $#, getopts)”?

Aprenda a passar argumentos para seus scripts e analisar opções da linha de comando usando variáveis especiais e 'getopts'. Você pratica Linux Command Line & Bash Scripting Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Linux Command Line & Bash Scripting Mastery?

Nenhuma experiência prévia é necessária. Linux Command Line & Bash Scripting Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Argumentos e Opções de Scripts ($@, $#, getopts)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Linux Command Line & Bash Scripting Mastery?

Sim. Cada aula de Linux Command Line & Bash Scripting Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estruturas de Repetição (for, while)
  2. Funções em Scripts Bash
  3. Argumentos e Opções de Scripts ($@, $#, getopts)
  4. A Instrução case e a Correspondência de Padrões
← Voltar para Linux Command Line & Bash Scripting Mastery