Ho scritto uno script bash e sto ricevendo un errore quando sto testando una condizione se una variabile è vuota o meno.
Di seguito è riportato uno script di esempio:
Non ho menzionato i comandi che vengono eseguiti per assegnare valori alle variabili a e fne ma
#! /bin/bash
for f in /path/*
do
a=`some command output`
fne=`this command operates on f`
if[ -z "$a" ]
then
echo "nothing found"
else
echo "$fne" "$a"
fi
done
errore: errore di sintassi vicino a un token imprevisto, "quindi".
Ho provato un'altra variazione come questa:
#! /bin/bash
for f in /path/*
do
a=`some command output`
fne=`this command operates on f`
if[ -z "$a" ]; then
echo "nothing found"
else
echo "$fne" "$a"
fi
done
di nuovo lo stesso errore.
quando provo a confrontare in questo modo:
if[ "$a" == "" ]; then
di nuovo lo stesso errore.
Non sono sicuro di quale sia la causa dell'errore. Il valore della variabile a è come questo:
Qualcosa con esso (1): [x, y]
contiene, spazi, parentesi, virgola, due punti. Sto accludendo il nome della variabile tra virgolette in confronto.
risposte:
6 per risposta № 1Ti manca lo spazio dopo il if
:
#! /bin/bash
for f in /path/*
do
a=`some command output`
fne=`this command operates on f`
if [ -z "$a" ]; then
echo "nothing found"
else
echo "$fne" "$a"
fi
done
Nota a margine: se stavi usando vi
per la modifica, avrebbe la sintassi del tuo errore di battitura ...