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, geditpojawia 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 numberksh(93u + 2012-08-01): kończy się niepowodzeniem, ale proces najwyraźniej się rozpoczyna (1223), chociaż niegeditpojawia się żadne okno:$ 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 & ^
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/nulljest to interpretowane, >&/dev/nullale dlaczego przestrzeń nie powoduje błędu w tych powłokach?
nohup commandUruchom niezależny tty Twój application.According do mojej pamięci, dashrozszerzoną ash, Debian ash, ashopracowane przez OpenBSDi jest ograniczona powłoki, nawet Maemo OS (baza Debiana na N900 mobile) wykorzystuje kreskę, ashpowłoka rodzina mają ograniczone wykorzystanie spodziewać bash lub tcsh.
dashdo 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, shprawda?
nohuprobi, moje pytanie brzmi: dlaczego >&wydaje się, że działa w pojedynczych muszlach z nohup?
dash.