O &
direciona o shell para executar o comando em segundo plano, ou seja, ele é bifurcado e executado em um sub-shell separado, como um trabalho, de forma assíncrona.
Observe que quando você coloca &
, a saída - stdout e stderr - ainda será impressa na tela . Se você não quiser ver nenhuma saída na tela, redirecione os arquivos stdout
e stderr
para um arquivo por:
myscript > ~/myscript.log 2>&1 &
Normalmente você pode querer descartar o stderr
redirecionando-o para /dev/null
se você não estiver preocupado em analisar os erros mais tarde.
Você também pode executar comandos / scripts ao mesmo tempo, em sub-shells separados. Por exemplo,
./script1 & ./script2 & ./script3 &
Um trabalho em segundo plano pode ser trazido de volta à linha de comando antes de terminar com o comando:
fg <job-number>
O job-number
pode ser obtido executando
jobs