Editei uma resposta no Ask Ubuntu que sugeria o seguinte
nohup gedit >& /dev/null &
Quando eles realmente quiseram dizer
nohup gedit &> /dev/null &
O último redireciona corretamente o stderr e o stdout para /dev/null. Eu esperava que o primeiro crie um arquivo chamado &ou, mais provavelmente, dê um erro, como ocorre em outros casos:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Em vez disso, parece funcionar exatamente da mesma maneira que a anterior, uma geditjanela aparece e nenhuma mensagem de erro é impressa.
Também devo observar que isso é específico do shell:
bash(4.2.45 (1) -release),zsh(5.0.2),csh(versão do pacote deb: 20110502-2) etcsh(6.18.01): funciona como descrito acima, sem mensagem de erro, sem arquivos criados.dash(0.5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd numberksh(93u + 2012-08-01): falha, mas aparentemente um processo foi iniciado (1223) embora nenhumageditjanela apareça:$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit numberfish(2.0.0):> nohup gedit >& /dev/null & fish: Requested redirection to something that is not a file descriptor /dev/null nohup gedit >& /dev/null & ^
Então, por que esse comando simplesmente é executado sem erros (e nenhum arquivo de saída criado) em alguns shells e falha em outros? O que está >&fazendo no caso aparentemente especial de nohup? Suponho que isso >& /dev/nullesteja sendo interpretado como >&/dev/nullmas por que o espaço não está causando um erro nessas conchas?
nohup command, Execute tty independente seu application.According à minha memória, dashestendida de ash, Debian ash, ashdesenvolvido pela OpenBSDe é shell limitado, mesmo OS Maemo (Debian Base n900 mobile) utiliza traço, ashshell família têm uso limitado esperar de bash ou tcsh.
dashimprimir minha versão, mas o pacote é 0.5.7-3: qual é a sua? Além disso, você tem certeza de que está executando dash? Esse é o padrão do Ubuntu, shnão é?
nohupfaz, minha pergunta é por que o >&parece funcionar com nohup sozinho em algumas conchas.
dash.