Anche se non sto rispondendo alla domanda originale relativa al comando no-op, molti (se non la maggior parte) problemi quando si potrebbe pensare " in questo ramo non devo fare nulla " possono essere aggirati semplicemente ristrutturando la logica in modo che questo ramo vinca non succede.
Provo a dare una regola generale usando l'esempio dei PO
non fare nulla quando $ a è maggiore di "10", stampa "1" se $ a è inferiore a "5", altrimenti stampa "2"
dobbiamo evitare un ramo in cui ne $a
valgono più di 10, così $a < 10
come una condizione generale può essere applicata l'una all'altra, seguendo la condizione.
In termini generali, quando si dice fare nulla quando X , quindi riformulare come evitare una filiale dove X . Di solito puoi evitare l'evasione semplicemente negando X e applicandolo a tutte le altre condizioni.
Quindi l'esempio dei PO con la regola applicata può essere ristrutturato come:
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
Solo una variazione di quanto sopra, racchiudendo tutto nella $a < 10
condizione:
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(Per questo esempio specifico la ristrutturazione di @Flimzys è sicuramente migliore, ma volevo dare una regola generale per tutte le persone che cercano come non fare nulla.)
true
. È integrato nella shell e non fa nulla.