Sinto-me bastante confortável em colocar ponto e vírgula, novas linhas e e comercial onde são necessários . Mas qual é a maneira “correta”? É apenas uma questão de estilo/preferência pessoal ou um é de alguma forma melhor que o outro?
while true; do
cmd1
cmd2
cmd3
done
while true; do
cmd1;
cmd2;
cmd3;
done
O segundo usa mais tinta/elétrons, mas você poderia simplesmente juntar as linhas e ainda assim ficaria ok:
while true; do cmd1; cmd2; cmd3; done
O Lexer/Parser não os vê como diferentes.
Você nunca junta linhas aleatoriamente, isso não faz o menor sentido, então você não está realmente resolvendo um problema do mundo real.
Portanto, todas as diferenças são perceptivas pelo ser humano.
Eu pessoalmente defenderia o estilo com cada comando claramente visível em sua própria linha, sem ponto e vírgula, a menos que sintaticamente relevante, devido à experiência de que o outro código tem maior probabilidade de conter erros fáceis de serem perdidos. (Isso ocorre porque são os iniciantes que espalham aleatoriamente elementos sem sentido, como ponto e vírgula, e os códigos dos iniciantes têm maior probabilidade de serem errôneos. Do lado causal, se você adicionar elementos ao seu código que não importam sintaticamente nem esclarecem uma intenção por trás do que já foi óbvio, meu cérebro terá que ignorá-los explicitamente e terá menos capacidade de encontrar problemas reais em seu código.)
Mas isso é puramente uma preferência, e não há nada "correto" nisso, a menos que você queira considerar as "diretrizes do código pessoal de Sina Bala" como uma regra.
No geral, porém, a consistência supera qualquer raciocínio do tipo "Gosto disso". Se você escreve scripts de shell, use um editor que faça o recuo e alguns destaques e verificações de sintaxe limitados para você. Se esse editor adicionar automaticamente um ponto e vírgula ao final de cada linha ou marcar uma linha faltando: tudo bem! Mas nada é pior do que ler código onde um terço das linhas segue uma convenção diferente das outras. Faz com que a mente dos leitores se ocupe em aprender novamente a estrutura de cada linha, em vez de aprender o conteúdo e a lógica do roteiro.