Bug no script (pequeno) bash

0

Estou tentando encontrar um bug neste script de teste, mas não consegui até agora. Eu não sou preguiçoso, eu prometo ... apenas novo para Bash, então estou tendo dificuldade em pegar erros de sintaxe. Eu realmente apreciaria se alguém pudesse me ajudar.

Aqui está o código. Eu chamo o script com a opção -disableVenusBld, e ainda imprime "Starting build", o que não deveria estar fazendo certo?

while [ $# -ne 0 ]
do
 arg="$1"
 case "$arg" in
  -disableVenusBld)
   disableVenusBld=true
   ;;
  -disableCopperBld)
   disableCopperBld=true
   ;;
  -disableTest)
   disableTest=true
   ;;
  -disableUpdate)
   disableUpdate=true
   ;;
  *)
   nothing="true"
   ;;
 esac
 shift
done

if [ "$disableVenusBld" != true ]; then
 echo "Starting build"
fi
    
por iman453 09.09.2010 / 22:06

1 resposta

3

Não consigo ver nada de errado com o seu script e ele faz o que você espera quando o executo:

$ bash -x 186724.sh
+ '[' 0 -ne 0 ']'
+ '[' '' '!=' true ']'
+ echo 'Starting build'
Starting build
$ bash -x 186724.sh -disableVenusBld
+ '[' 1 -ne 0 ']'
+ arg=-disableVenusBld
+ case "$arg" in
+ disableVenusBld=true
+ shift
+ '[' 0 -ne 0 ']'
+ '[' true '!=' true ']'

Observe que eu executei o script com bash -x . Isso faz com que todas as linhas que começam com + sejam impressas: você obtém um rastreamento da execução do seu script. Faça o mesmo com seu script real para descobrir onde está o problema.

    
por 09.09.2010 / 22:18