Я отредактировал ответ на Ask Ubuntu, в котором предлагалось следующее
nohup gedit >& /dev/null &
Когда они на самом деле имели в виду
nohup gedit &> /dev/null &
Последний правильно перенаправляет как stderr, так и stdout на /dev/null. Я ожидал, что первый создаст файл с именем &или, что более вероятно, выдаст ошибку, как в других случаях:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Вместо этого он работает точно так же, как и первый, появляется geditокно и сообщение об ошибке не выводится.
Я также должен отметить, что это специфическая оболочка:
bash(4.2.45 (1) -релиз),zsh(5.0.2),csh(версия пакета deb: 20110502-2) иtcsh(6.18.01): работает, как описано выше, сообщений об ошибках нет, файлы не созданы.dash(0.5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd numberksh(93u + 2012-08-01): не удается, но процесс, очевидно, запущен (1223), хотяgeditокно не появляется:$ 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 & ^
Итак, почему эта команда просто запускается без ошибок (и не создается выходной файл) в одних оболочках и завершается ошибкой в других? Что >&делает в явно особом случае nohup? Я предполагаю, что >& /dev/nullэто интерпретируется как, >&/dev/nullно почему пространство не вызывает ошибку в этих оболочках?
nohup commandЗапустите независимый терминал вашего application.According в мою память, dashрасширенной из ash, Debian ash, ashразработанных OpenBSDи она ограничена оболочки, даже Maemo OS (Debian Base на n900 мобильный) использует тир, ashсемейство оболочка имеет ограниченное использование ожидать от Баш или Tcsh.
dashраспечатать его версию, но пакет 0.5.7-3, какой у тебя? Кроме того, ты уверен, что бежишь dash? Это Ubuntu по умолчанию sh, не так ли?
nohupделает, мой вопрос, почему >&кажется, что работает в некоторых оболочках только с nohup.
dash.