Я відредагував відповідь на запитання 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
(версія пакетаtcsh
дебютування: 20110502-2) та (6.18.01): працює, як описано вище, повідомлення про помилку, файлів не створено.dash
(0,5,7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd number
ksh
(93u + 2012-08-01): не вдається, але процес, мабуть, запускається (1223
), хоча неgedit
з'являється вікна:$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit number
fish
(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
.