Embora eu não esteja respondendo à pergunta original referente ao comando no-op, muitos (se não a maioria) dos problemas em que alguém pode pensar " neste ramo, não preciso fazer nada " podem ser contornados simplesmente reestruturando a lógica para que esse ramo ganhe. ocorrer.
Eu tento dar uma regra geral usando o exemplo de OPs
não faça nada quando $ a for maior que "10", imprima "1" se $ a for menor que "5", caso contrário, imprima "2"
temos que evitar um ramo em que $a
obtenha mais de 10, para $a < 10
que uma condição geral possa ser aplicada a todas as outras condições a seguir.
Em termos gerais, quando você diz não fazer nada quando X , então reformulá-la como evitar um ramo onde X . Normalmente, você pode fazer com que a evitação aconteça simplesmente negando o X e aplicando-o a todas as outras condições.
Portanto, o exemplo dos POs com a regra aplicada pode ser reestruturado da seguinte maneira:
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
Apenas uma variação do exposto, incluindo tudo na $a < 10
condição:
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(Para este exemplo específico, a reestruturação da @Flimzys é certamente melhor, mas eu queria dar uma regra geral para todas as pessoas que pesquisam como não fazer nada.)
true
. Está embutido no shell e não faz nada.