Eu vi um trecho de código contendo uma estrutura de caso.
while true;
do
case "$1" in
--prepare)
echo "prepare"
ENV_PREPARE
exit 0
;;
--sleep)
SLEEP_TIME=$2
shift 2
;;
--)
shift
break
;;
*)
echo "Internal error!"
exit 1
;;
esac
done
O que --) significa hrer na estrutura de caso do bash?
--)
shift
break
;;
Responder1
Isso não significa nada de especial para bater.
O autor desse trecho queria combinar dois hífens sozinhos, sem quaisquer outros caracteres. Literalmente "--".
Muitas ferramentas de linha de comando Unix, especialmente da herança GNU, permitem usar "--" como delimitador para significar “nada além deste ponto deve ser tratado como uma opção; o resto desta linha de comando é composta de argumentos (como uma lista de nomes de arquivos para um comando que atua sobre arquivos)”. Dessa forma você pode, digamos, excluir um arquivo chamado "--help", digitando:
rm -- --help
Isso evita rm
pensar que "--help" é uma opção longa para ver a instrução de ajuda. (Este é um exemplo ruim, mas acho que você entendeu o que quero dizer.)
Acho que o autor desse roteiro queria fazer "--" funcionar assim em seu roteiro.