1 votos

Comando bash en cola en un archivo

Me gustaría cola de algunos scripts de bash en un archivo que se puede modificar. Así que ejecuto ese archivo "lauchscripts.py" o "lauchscripts.sh" que contiene los comandos para lanzar los scripts:

1:> source folder1/script1.sh 
2:> source folder2/script2.sh
3:> source folder3/script3.sh 
4:>

Así que: 1) cuando me lanzamiento de este, se inicia script1.sh y después, cuando termina lanza script2.sh y así sucesivamente. 2) en cualquier momento mientras se ejecuta,me puede agregar líneas a mi "lauchscripts" archivo que será más tarde ejecutado. Digamos que mientras se ejecuta script3.sh (línea 3), si puedo añadir en la línea 4, con un comando:

1:> source folder1/script1.sh 
2:> source folder2/script2.sh
3:> source folder3/script3.sh 
4:> source folder4/script4.sh

Esta línea se va a ejecutar script4.sh después de terminar script3.sh

Es eso posible?

Gracias

0voto

Locale Support Puntos 295

Si su archivo contiene los nombres de los scripts en lugar de código, usted puede hacer esto fácilmente y de forma segura:

while read -r -u 9
do
    . "$REPLY"
done 9< scripts.txt

Como con la mayoría de secuencias de comandos de hacks, hay un montón de advertencias a todo esto (y más aún si read código y eval ):

  1. Si el archivo descriptor de 9 (-u 9) se utiliza para nada en cualquiera de los guiones de todas las apuestas están apagadas.
  2. Si alguna de las secuencias de comandos de conjunto de las variables en este contexto no se borra.
  3. Una vez que la última línea de scripts.txt es leer el bucle termina.

Una mejor solución sería la de ejecutar las secuencias de comandos de leer, por la simple eliminación de la dot. Para que esto funcione el script de rutas de acceso que contienen al menos una barra oblicua o más de los guiones deben ser en su PATH.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: