Aunque no estoy respondiendo a la pregunta original sobre el comando no-op, muchos (si no la mayoría) de los problemas cuando uno puede pensar " en esta rama no tengo que hacer nada " pueden evitarse simplemente reestructurando la lógica para que esta rama gane No ocurra.
Intento dar una regla general usando el ejemplo de OP
no haga nada cuando $ a sea mayor que "10", imprima "1" si $ a es menor que "5", de lo contrario, imprima "2"
tenemos que evitar una rama donde $a
obtiene más de 10, por lo $a < 10
que una condición general se puede aplicar a todos los demás, después de la condición.
En términos generales, cuando se dice no hacer nada cuando X , entonces reformular como evitar una sucursal en la que X . Por lo general, puede evitarlo simplemente negando X y aplicándolo a todas las demás condiciones.
Por lo tanto, el ejemplo de OP con la regla aplicada puede reestructurarse como:
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
Solo una variación de lo anterior, que incluye todo en la $a < 10
condición:
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(Para este ejemplo específico, la reestructuración de @Flimzys es ciertamente mejor, pero quería dar una regla general para todas las personas que buscan cómo no hacer nada).
true
. Está integrado en el caparazón y no hace nada.