Skip to content

Instantly share code, notes, and snippets.

@javascripto
Created October 17, 2024 18:33
Show Gist options
  • Select an option

  • Save javascripto/35b94c0c13cec3df8353f4c5e688776a to your computer and use it in GitHub Desktop.

Select an option

Save javascripto/35b94c0c13cec3df8353f4c5e688776a to your computer and use it in GitHub Desktop.
# Função para lidar com argumentos nos cinco formatos: -n=valor, e -nValor, -n valor, --nome=valor, --nome valor
# Função para lidar com argumentos nos cinco formatos: -n=valor, -n valor, -nValor, --nome=valor, --nome valor
funcao-com-flag() {
local nome="fulano"
# Processar argumentos curtos, longos e curtos com e sem "="
while [[ $# -gt 0 ]]; do
case "$1" in
# Argumentos curtos sem igual (-n valor)
-n)
nome="$2"
shift 2
;;
# Argumentos curtos com igual (-n=valor)
-n=*)
nome="${1#*=}"
shift 1
;;
# Argumentos curtos diretamente após o argumento (-nValor)
-n*)
nome="${1#*-n}"
shift 1
;;
# Argumentos longos com igual (--nome=valor)
--nome=*)
nome="${1#*=}"
shift 1
;;
# Argumentos longos sem igual (--nome valor)
--nome)
nome="$2"
shift 2
;;
*)
echo "Uso: $0 [-n nome] ou [--nome=valor] ou [--nome valor] ou [-n=valor] ou [-nFulano]"
return 1
;;
esac
done
echo "Nome: $nome"
}
funcao-com-flag # Nome: fulano (default)
funcao-com-flag -nFulano -n Fulano -n=Fulano --nome Fulano --nome=Fulano --nome="Fulano" # Nome: Fulano
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment