Esto se conoce como job controlbajo unix. El &informa al shell para poner el comando en segundo plano. Esto significa que continúa ejecutando el sys-snap.shcomando pero lo regresa a su shell para permitirle continuar haciendo comandos paralelos.
Puede ver la lista de trabajos que se ejecutan actualmente con el jobscomando. Puede volver al comando (poner en primer plano) con el uso del fgcomando. Lo que devuelve el comando al estado en el que no ve ningún mensaje y tiene que emitir Ctrl, Cpara matar el proceso. Sin embargo, puede suspender (pausar) ese proceso, emitiendo Ctrl- Z. Esto hará una pausa sys-snap.shy te devolverá a tu mensaje. Puede entonces fondo que (como si la hubiera emitido con la &) con el bgcomando, y se reanuda la ejecución de esta en pausa el estado Ctrl- Zlo había puesto en.
Tenga en cuenta que puede tener más de un trabajo a la vez (como se muestra en jobs):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Puede ponerlos en segundo plano y en primer plano utilizando su número de trabajo, %1será sys-snap.shy %2será another-script.sh. Si usa fgo bgsin argumentos, ejecutará el comando en el trabajo marcado +en el jobsresultado anterior.
fg %1
volverá a poner sys-snap.shen primer plano, dejando another-script.shen segundo plano.
Puede emitir la secuencia Ctrl- Cpara ejecutar trabajos sin tener que ponerlos en primer plano con el killcomando, kill %1enviará el equivalente de Ctrl- Ca sys-snap.sh.
Si está utilizando bash shell, el man bashcomando tiene una sección detallada debajo de la sección titulada 'CONTROL DE TRABAJO' que entra en más detalles.
En cuanto al nombre de sys-snap.sh, bajo los nombres de archivo Unix son arbitrarios (con un par de excepciones, como los archivos de carga dinámica). No es necesario que tengan extensiones de archivo específicas para que se ejecuten como un script de shell, invoquen otros comandos como perlo phpetc. Se suele usar para proporcionar claridad, que en este caso, es .shun Script de Shell que utiliza Bourne Shell /bin/sh.
La parte funcional de sys-snap.sh(cuando miras su contenido con algo como el lesscomando) es el Shebang . En la primera línea probablemente encontrarás uno de:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
o similar. En términos básicos, se ejecuta un comando después de #!(como /bin/sh) y el contenido del resto del archivo de script se alimenta de una línea a la vez. Tenga en cuenta que el archivo también debe configurarse como ejecutable chmodpara que pueda ejecutarlo como un comando. Si no se establecieron los permisos, entonces shebangno tiene ningún efecto, ya que obtendría el error:
bash: sys-snap.sh: command not found
o si lo ejecutó por ruta explícita ./sys-snap.sh(es .decir, el directorio de trabajo actual) obtendría:
bash: ./sys-snap.sh: Permission denied
La otra alternativa es dejarlo sin permisos de ejecución y pedirle explícitamente a / bin / sh que lo ejecute:
/bin/sh sys-snap.sh &
&&diferente de un solo ampersand&?