Ogni sistema che ho usato in passato continua i miei semplici script bash se una riga restituisce un risultato diverso da zero. Alcuni nuovi sistemi Ubuntu LTS 14.x ora escono dal primo errore. Ho usatoScript di Bash che termina dopo il primo risultato diverso da zero anche se -e non è impostato in ENV
echo $-
e e non compare nell'elenco. Cos'altro dovrei cercare?
Aggiunto da commentare:
$ declare -f command_not_found_handle
command_not_found_handle()
{
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1";
return $?;
else
if [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1";
return $?;
else
printf "%s: command not found\n" "$1" 1>&2;
return 127;
fi;
fi
}
Il comando 'declare -f command_not_found_handle' restituisce qualcosa? –
Sì, il risultato è come previsto, credo 'command_not_found_handle() { if [-x/usr/lib/comando-non-trovato]; quindi /usr/lib/comando-non-trovato - "$ 1"; ritorno $ ?; else se [-x/usr/share/comando-non-trovato/comando-non-trovato]; quindi /usr/share/comando-non-trovato/comando-non-trovato - "$ 1"; ritorno $ ?; else printf "% s: comando non trovato \ n" "$ 1" 1> & 2; ritorno 127; fi; fi } ' –
Quindi il tuo script uscirà se tenti di utilizzare qualsiasi comando che non può essere trovato dove uno di questi script restituisce un valore diverso da zero o quando nessuno di questi script può essere trovato. Con quale codice di uscita viene eseguito lo script? A che punto della sceneggiatura? Cosa ti mostra 'set -x'? –