私は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)-release)、zsh
(5.0.2)、csh
(deb package version:20110502-2)およびtcsh
(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
、私の記憶に実行する独立したttyあなたapplication.According dash
の延長ash
、Debian ash
、ash
によって開発されOpenBSD
、それは限られたシェル、でもMaemoのOSダッシュを使用しています(N900モバイルは上のDebianベース)ですが、ash
家族のシェルは、限られた使用がbashやtcshのを期待しています。
dash
バージョンを印刷する方法がわかりませんが、パッケージはです0.5.7-3
、あなたのものは何ですか?また、実行していることを確認しますdash
か?それがUbuntuのデフォルトsh
ですよね?
nohup
ません、私は何を知っていますか、私の質問は、なぜ>&
いくつかのシェルでnohupだけで動作するようです。
dash
ます。