Eu tenho cerca de 20 comandos e tenho que enviar tudo isso para o shell do Unix e copiar o resultado, mas não sei como fazê-lo.
Não tenho certeza sobre qual shell tenho, porque é um pequeno programa conectado ao Mobile Network Management, e com esse pequeno programa temos acesso para enviar comandos por linha e receber os resultados por grito, por esse motivo não posso usar scripts para enviando os comandos.
Comando 1 - Conecte-se a um servidor.
Aguarde até o comando 1 terminar
Comando 2 - Atualize todas as informações do servidor 1 e finalize
Esperar.
Comando 3 . Obtenha algum parâmetro.
... e mais desses comandos.
Eu tentei com cmd1 | cmd2 | cmd3
e cmd1 & cmd2 & cmd3
ecmd1;cmd2
O problema é que ele está cmd1
conectado a um RNC (elemento de rede) e demora cerca de 15 segundos, depois disso cmd2
faz sentido. mas apenas trabalhe para o primeiro cmd. Alguma pista, como executar isso?
fonte
&&
entre comandos.Respostas:
Geralmente apenas
cmd1;cmd2;cmd3;cmd4
(se você quiser escrevê-lo em uma linha), ou usandocmd1 && cmd2 && cmd3 && cmd4
se você não deseja executar o cmd3 quando o cmd2 falhar.Como alternativa,
;
você pode simplesmente escrever um comando por linha.Se você deseja que os comandos sejam executados paralelamente em segundo plano, também pode usar
Qualquer um desses métodos também pode ser colocado em um script de shell. Há pouca diferença entre o que você escreve em um script de shell e o que você escreve no próprio shell.
fonte
cmd1;cmd2
caso (ou,cmd1 && cmd2
nesse caso), o cmd2 não será executado até que o cmd1 tenha saído (e, portanto, presumivelmente concluído). Portanto, não deve haver nenhum problema - reformule sua pergunta ou forneça um exemplo que as pessoas possam realmente reproduzir.Você pode procurar
sleep
, se o seu ambiente permitir. A sequência completa seria então algo comocmd1 && sleep 10s && cmd2
.Aqui está a página do manual relevante para dormir .
fonte
Basta usar um script, um arquivo contendo os comandos para executar um após o outro, como:
A primeira linha (shebang) diz para executar os seguintes comandos usando
/bin/sh
, torne o arquivo executável (chmod u+x your-little-script
) e então você pode executá-lo./my-little-script
. Dessa forma, você não deixará nenhum passo fora ;-)Leia o manual do shell, ele fornece uma linguagem de programação completa. Verifique
bash(1)
se é isso que está disponível, ou então o shell Kornksh(1)
. Eles oferecem muitos recursos úteis para controlar o fluxo de controle em scripts (ou de maneira interativa).fonte
source your-little-script
(ou. your-little-script
abreviado).ssh
ouPuTTY
talvez?Você poderia executar algo como
expect
no computador local para enviarcmd1
e aguardar o término antes da emissão,cmd2
etc. Você precisa descobrir um período razoável para aguardar ou uma saída específica que indique que o comando foi executado, para escrever uma mensagem adequada. Espere script.Obviamente,
cmd1; cmd2; cmd3; cmd4
em um comando, os comandos serão executados em sequência, um após o outro.fonte