[BASH] Concatenare più condizioni nell'if
[BASH] Concatenare più condizioni nell'if
ciao a tutti,
vorrei sapere come concatenare più di due condizioni nelle parentesi dell'if.
if[ condizione1 -a condizione2 -a condizione3 ]
mi restituisce un errore.
vorrei sapere come concatenare più di due condizioni nelle parentesi dell'if.
if[ condizione1 -a condizione2 -a condizione3 ]
mi restituisce un errore.
-
- Entusiasta Emergente
- Messaggi: 1506
- Iscrizione: mercoledì 22 dicembre 2010, 18:09
- Desktop: Unity
- Distribuzione: Ubuntu 14.04.1 LTS 64bit
- Località: Verona
Re: [BASH] Concatenare più condizioni nell'if
Sarebbe carino sapere che errore ti restituisce, ma mi avventuro in un'educated guess e dico: ci vuole lo spazio tra "if" e "["
"I find your lack of faith disturbing."
Re: [BASH] Concatenare più condizioni nell'if
allora lo script è questo:
cioè devo controllare che mi vengano passati 3 argomenti, altrimenti stampo "errore"
l'errore prodotto è:
riga 1: [: atteso argomento
Codice: Seleziona tutto
if [ ! $1 -a ! $2 -a ! $3 ]; then
echo "errore"
else
echo "ok"
fi
l'errore prodotto è:
riga 1: [: atteso argomento
- crap0101
- Rampante Reduce
- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: [BASH] Concatenare più condizioni nell'if
il fatto è che se manca un argomento, $3 verrà espanso a... nulla per cui la negazione e l'and logico non hanno nulla da negare o confrontare, si aspettano appunto un argomento che non c'è. Quell'if è comunque errato logicamente dal momento che staresti testando un unico caso, quello in cui non viene passato alcun argomento; ovviamente se l'argomento $1 non è stato passato, non è stato passato neanche il secondo, nè il terzo e così via... l'unica eccezione è il caso in cui gli argomenti effettivamente ci sono ma vengono comunque valutati nulli, cioè che bho, potrebbero anche essere valori acettabile.
btw, se l'unica cosa da fare è controllare che allo script venga passato un certo numero di argomenti la cosa più comoda è confrontare quel valore con quello di $# .
Codice: Seleziona tutto
./script '' '' ''
btw, se l'unica cosa da fare è controllare che allo script venga passato un certo numero di argomenti la cosa più comoda è confrontare quel valore con quello di $# .
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Re: [BASH] Concatenare più condizioni nell'if
grazie, sei stato molto esaustivo.
Chi c’è in linea
Visualizzano questa sezione: Majestic-12 [Bot] e 8 ospiti