Zredagowałem odpowiedź na Ask Ubuntu, która sugerowała, co następuje
nohup gedit >& /dev/null &
Kiedy tak naprawdę mieli na myśli
nohup gedit &> /dev/null &
Ten drugi poprawnie przekierowuje zarówno stderr, jak i stdout do /dev/null
. Spodziewałem się, że ten pierwszy utworzy plik o nazwie &
lub, co bardziej prawdopodobne, spowoduje błąd, tak jak w innych przypadkach:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Zamiast tego wydaje się, że działa dokładnie tak samo jak poprzedni, gedit
pojawia się okno i nie jest drukowany komunikat o błędzie.
Powinienem również zauważyć, że jest to specyficzne dla powłoki:
bash
(4.2.45 (1) -release),zsh
(5.0.2),csh
(wersja pakietu deb: 20110502-2) itcsh
(6.18.01): działa jak opisano powyżej, bez komunikatu o błędzie, nie utworzono plików.dash
(0,5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd number
ksh
(93u + 2012-08-01): kończy się niepowodzeniem, ale proces najwyraźniej się rozpoczyna (1223
), chociaż niegedit
pojawia się żadne okno:$ 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 & ^
Dlaczego więc to polecenie po prostu działa bez błędów (i nie jest tworzony plik wyjściowy) w niektórych powłokach, aw innych nie działa? Co >&
robi w pozornie szczególnym przypadku nohup
? Zgaduję, że >& /dev/null
jest to interpretowane, >&/dev/null
ale dlaczego przestrzeń nie powoduje błędu w tych powłokach?
nohup command
Uruchom niezależny tty Twój application.According do mojej pamięci, dash
rozszerzoną ash
, Debian ash
, ash
opracowane przez OpenBSD
i jest ograniczona powłoki, nawet Maemo OS (baza Debiana na N900 mobile) wykorzystuje kreskę, ash
powłoka rodzina mają ograniczone wykorzystanie spodziewać bash lub tcsh.
dash
do wydrukowania jego wersji, ale pakiet jest 0.5.7-3
, jaki jest twój? Czy jesteś pewien, że biegniesz dash
? To jest domyślne ustawienie Ubuntu, sh
prawda?
nohup
robi, moje pytanie brzmi: dlaczego >&
wydaje się, że działa w pojedynczych muszlach z nohup?
dash
.