Comentários
- terdon ' s resposta abaixo é excelente, mas você pode eliminar os pontos-e-vírgulas na versão que ' ve mostrado acima, assim como os comandos são executados em ordem no script, cada um em sua própria linha. O ponto e vírgula é redundante a menos que você coloque todos os comandos em uma linha.
Resposta
Sim, você está fazendo da maneira certa. Os scripts de shell executarão cada comando sequencialmente, esperando que o primeiro termine antes que o próximo comece. Você pode juntar os comandos com ;
ou colocá-los em linhas separadas :
command1; command2
ou
command1 command2
Não há necessidade de ;
se os comandos estiverem em linhas separadas. Você também pode escolher executar o segundo comando apenas se o primeiro tiver sido encerrado com sucesso. Para fazer isso, junte-os com &&
:
command1 && command2
ou
command1 && command2
Para obter mais informações sobre os vários operadores de controle disponíveis para você, veja aqui .
Comentários
- Lembre-se disso em vez de
&&
, OP poderia simplesmente adicionarset -e
no início do script. Claro, este não é um operador de encadeamento de processo. - @didierc que fará com que o script saia em qualquer erro e também produzirá muitos relatórios de progresso desnecessários. Não é o mesmo que vincular dois comandos específicos com
&&
. - @polemon não realmente, não. Esta é uma pergunta muito simples feita por um usuário novato. Não ' não vejo muito sentido em adicionar muitos detalhes. Observe que eu não ' nem mencionei
||
. Eu não ' não vejo por quewait
é relevante aqui, certamente não é necessário para a tarefa simples de executar um comando após o outro. Ele só seria necessário para um controle mais refinado dos processos. Sinta-se à vontade para enviar uma resposta, é claro, mas eu ' prefiro manter a minha simples. - @terdon wouldn ' que seja
set -v
ouset -x
em vez deset -e
? - @didierc veja meu comentário acima, eu estava pensando em
set -x
, desculpe.
Resposta
Em um caso repetitivo como este, recomendo usar um loop for .
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
Esta é uma versão de uma linha adequada para a linha de comando, mas também pode ser usada em um script. As chaves em torno do nome da variável são necessárias ao incorporar uma variável em uma string sem espaços em branco.
O loop não apenas envia as solicitações em ordem, mas é mais fácil de ajustar e reutilizar quando necessário, sem muitas preocupações com erros de digitação.