So che set -u
fallirà lo script se ci sono delle variabili non associate referenziate, ma nel mio script bash, sto verificando se una certa variabile non è impostata all'interno di un'istruzione if prima che tenti di fare qualcosa con esso, come così:Come posso controllare se una variabile non è impostata E usare set -u nel mio preludio di bash?
if [[ -z "${SOME_VARIABLE}" ]] ; then
echo '$SOME_VARIABLE' is not set
else
do_stuff_with_SOME_VARIABLE
fi
Tuttavia, se provo a fare funzionare il suddetto con set -eu
nel mio preludio, ottengo il seguente errore, che sembra un po 'un controsenso dato quello che sto cercando di fare:
-bash: SOME_VARIABLE: unbound variable
[Process completed]
Come puoi vedere, in realtà non sto cercando di usare $SOME_VARIABLE
quando si ' s unset, quindi quello che mi piacerebbe sapere è se c'è un modo per fallire lo script quando sto provando a usare variabili unset (come passarle come argomenti o applicare manipolazioni di stringhe a loro) ma non quando sono semplicemente controllando per vedere se sono disinseriti?
Semplicemente geniale. – kevinarpe