Es cuestión de tiempo: bash inicia el hello
comando en segundo plano, luego muestra un mensaje que le permite ingresar un nuevo comando, luego el comando en segundo plano imprime algunos resultados. Cuando ingresa la siguiente línea de comando (una línea de comando vacía, si solo presiona Enter), bash muestra la notificación de que el trabajo en segundo plano ha finalizado, luego el siguiente mensaje.
Es posible que desee experimentar con un script que comience sleep 3
y comience a escribir justo después de iniciar el script en segundo plano, para ver qué sucede a un ritmo que pueda seguir.
Puede hacer que bash le notifique de inmediato cuando finalice un trabajo en segundo plano configurando la notify
opción con set -b
. Entonces verás:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
Bash no vuelve a dibujar el indicador en este caso. Todavía está editando una línea de comando en la línea de solicitud que apareció antes de que se imprimiera el trabajo en segundo plano hello world!
. Puede volver a dibujar la línea actual presionando Esc 1 Ctrl+ L. Es posible que desee vincular el comando redraw-current-line
a una tecla más conveniente; por ejemplo, para que Ctrl+ Lvuelva a dibujar la línea actual y Ctrl+ Alt+ Lborre la pantalla, agregue las siguientes líneas a su ~/.inputrc
:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
No conozco una manera de hacer que bash vuelva a dibujar la línea de solicitud automáticamente. Zsh lo hace por defecto.
Gilles 'SO- deja de ser malvado'
fuente