Eu tenho um script que aceita um argumento e, se não for definido, usa um padrão.
VALUE=$1
if [[ -z "$VALUE" ]];
VALUE=foo #some function returns the default
fi
Então o script continua fazendo algumas coisas.
Eu gostaria de "melhorá-lo" e fornecer algumas dry run
opções. Para que, se isso for aprovado, teríamos algo como
if [[ -z "$DRY" ]];
echo "command x y z"
else
command "x" "y" "z"
fi
Como posso fazer isso?
Faça a análise adequada da linha de comando e, em seguida, escolha como fazer o funcionamento a seco real.
A análise da linha de comando:
Agora,
$dry_run
serátrue
se o usuário invocou o script com a-n
opção de linha de comando.Em seguida, escolha como fazer o funcionamento a seco. Uma maneira simples seria usar
set -v
(exibir os comandos conforme eles são lidos pelo shell) seguido porset -n
(na verdade, não execute nada ):Isso pode não ser o que você deseja, pois apenas exibiria o script.
Em vez disso, você pode optar por fazer
e, em seguida, prefixe os comandos específicos com os quais você gostaria de executar a seco
$cmd
: