Qualcuno sa di un modo per eseguire più istruzioni all'interno di un test di bash? Quindi, se io uso:Un modo per eseguire più istruzioni per test di bash & una dichiarazione
[[ $Var = 1 ]] && echo "yes-1" || echo "no-1"
e impostare Var=1
poi uscita è: yes-1
se ho impostato Var=2
poi uscita è: no-1
E questo lavoro come mi aspettavo. Ma se provo ad aggiungere un altro istruzione da eseguire nel mix e non funziona:
[[ $Var = 1 ]] && echo "yes-1";echo "yes-2" || echo "no-1";echo "no-2"
Il che ha senso come bash vede il comando termina a; ma ... questo non è quello che voglio.
Ho provato il raggruppamento, le valutazioni e le funzioni e ho avuto fallimenti e successi, ma mi piacerebbe davvero fare questo lavoro su una sola riga. Qualcuno ha qualche idea?
Grazie, ho provato qualcosa del genere ma devo aver perso ";" alla fine della seconda dichiarazione. –
Ti ho dato la risposta corretta perché il ";" alla fine di ogni istruzione lo fa funzionare con o() sottoshell o {} raggruppamento. –
IMO, il raggruppamento dei comandi è migliore, nella maggior parte dei casi. per esempio. se vuoi uscire da uno script quando qualcosa non funziona, puoi fare 'foocmd || {echo foo fallito; uscita 1; } 'e stamperà una diagnostica e uscirà. Se si usano le subshell per il raggruppamento, solo la subshell stessa uscirà, non la scipt, che non è quasi certamente l'effetto desiderato. – JVMATL