Tengo alrededor de 20 comandos y tengo que enviar todo esto al shell de Unix y copiar el resultado, pero no sé cómo hacerlo.
No estoy seguro de qué shell tengo, porque es un pequeño programa conectado a Mobile Network Management, y con este pequeño programa tenemos acceso para enviar comandos por línea y recibir los resultados por grito, por eso no puedo usar scripts para enviando los comandos.
Comando 1 : conectarse con un servidor.
Espere hasta que termine el comando 1
Comando 2 : actualice toda la información del servidor 1 finalice
Espere.
Comando 3 . Obtén algunos parámetros.
... y más de esos comandos.
Lo intenté con cmd1 | cmd2 | cmd3
y cmd1 & cmd2 & cmd3
ycmd1;cmd2
El problema es que está cmd1
conectado a un RNC (elemento de red) y tarda unos 15 segundos, después de eso cmd2
tiene sentido. pero solo trabaja para el primer cmd. Alguna pista, ¿cómo ejecutar esto?
fuente
&&
entre comandos.Respuestas:
Por lo general, solo
cmd1;cmd2;cmd3;cmd4
(si desea escribirlo en una línea), o usarlocmd1 && cmd2 && cmd3 && cmd4
si no desea ejecutar cmd3 cuando cmd2 falla.Alternativamente
;
, puede escribir un comando por línea.Si desea que los comandos se ejecuten en paralelo en segundo plano, también puede usar
Cualquiera de esos métodos también se puede poner en un script de shell. Hay poca diferencia entre lo que escribe en un script de shell y lo que escribe en el propio shell.
fuente
cmd1;cmd2
caso (ocmd1 && cmd2
para el caso) cmd2 no se ejecutará hasta que cmd1 haya salido (y, por lo tanto, presumiblemente haya terminado). Por lo tanto, no debería haber ningún problema: reformule su pregunta o proporcione un ejemplo que las personas puedan reproducir.Es posible que desee investigar
sleep
, si su entorno lo permite. La secuencia completa sería entonces algo asícmd1 && sleep 10s && cmd2
.Aquí está la página de manual relevante para dormir .
fuente
Simplemente use un script, un archivo que contenga los comandos para ejecutar uno tras otro, como:
La primera línea (shebang) le dice que ejecute los siguientes comandos usando
/bin/sh
, haga que el archivo sea ejecutable (chmod u+x your-little-script
) y luego puede ejecutarlo./my-little-script
. De esta manera no dejarás ningún paso fuera ;-)Lea el manual del shell, proporciona un lenguaje de programación completo. Echa un vistazo
bash(1)
si eso es lo que está disponible, o si no el shell Kornksh(1)
. Ofrecen muchas funciones útiles para controlar el flujo de control en los scripts (o interactivamente, para el caso).fuente
source your-little-script
(o. your-little-script
para abreviar).ssh
oPuTTY
tal vez?)Puede ejecutar algo como
expect
en su computadora local para enviarcmd1
y esperar a que termine antes de emitir,cmd2
etc. Debe calcular un período razonable para esperar, o una salida específica que indique que el comando se ha ejecutado, para poder escribir correctamente. Esperar guión.Por supuesto,
cmd1; cmd2; cmd3; cmd4
en un comando se ejecutarán los comandos en secuencia, uno tras otro.fuente