Você deve ser capaz de fazer o que você tem em mente usando o agrupamento de comandos, que permite executar comandos juntos, neste caso, com sucesso ou não, ou seja, no formulário { cmd; cmd; }
. Mais informações sobre o agrupamento de comandos e o uso de & & e || operadores lógicos estão disponíveis em o wiki do Bash e no Manual de referência do Bash .
Eu pensei inicialmente que a forma que sua linha de comando poderia tomar seria:
{ cmd1; cmd2; cmd3; }; sleep 1; { cmd4; cmd5;}
O comando sleep apenas dá uma pausa e pode ser removido.
No entanto , você diz que quer um retorno extra, ou confirmação para os dois últimos comandos, e para conseguir isso você precisa interromper o fluxo de comando no exemplo acima - sleep meramente pausa, mas independentemente dos dois últimos comandos serem sempre executados.
Para realmente interromper a cadeia de comando, você pode usar read -p.....
, o que exige a intervenção do usuário para continuar. Aqui está o que você poderia fazer:
1) Execute os três primeiros comandos, depois dê ao usuário a oportunidade ou não de executar os últimos. Você pode ver se o oneliner que escrevi abaixo é adequado:
Nota : Por favor, substitua o comando id pelos seus próprios comandos.
id; id; id; read -p "Execute final two commands? (Y/N) " ans; if [[ $ans =~ Y|y ]]; then id; id; else echo "Finished"; fi
Agora, os três primeiros comandos são executados e, em seguida, você precisa pressionar y e retornar para os dois últimos a serem executados, mas todos os comandos estão na mesma linha. Isso é o máximo que posso conseguir, porque não tenho certeza do que você quer.