`nohup`、`&`、およびリダイレクトの間で順序を指定しますか?

`nohup`、`&`、およびリダイレクトの間で順序を指定しますか?

リダイレクトで使用するときのnohup正しい順序は何ですか?&

他のコマンドが正しくないのはなぜですか?

例えば、

$ nohup firefox& &> /dev/null

$ nohup firefox &> /dev/null  &

リダイレクトと&

他の例、

$ nohup sleep 1000 & &>/dev/null

にリダイレクトされていませんが、/dev/nullまだリダイレクトされています./nohup.out

ベストアンサー1

セクションから始めます。シェル文法マニュアルページからbash

簡単なコマンド

簡単なコマンド一連のオプションの変数割り当てで、その後にスペースで区切られた単語とリダイレクト、次によって終了します。制御演算子

だからリダイレクト&>/dev/null)が最初に表示され、制御演算子次のようになります(&)。

編集する:答えを完成させるために、nohup最初の部分は次のとおりです。簡単なコマンド。では特別な意味はありませんbash

まさにあなたの例です(これは/dev/null複雑であることを除いて):

jakuje@E6430:/tmp$ rm nohup.out out
jakuje@E6430:/tmp$ nohup sleep 1 & &>out
[1] 10876
nohup: ignoring input and appending output to ‘nohup.out’
[1]+  Done                    nohup sleep 1
jakuje@E6430:/tmp$ cat nohup.out             # empty
jakuje@E6430:/tmp$ cat out                   # empty
jakuje@E6430:/tmp$ rm nohup.out
jakuje@E6430:/tmp$ nohup sleep 1 &>out &
[1] 10882
[1]+  Done                    nohup sleep 1 &> out
jakuje@E6430:/tmp$ cat nohup.out             # no file
cat: nohup.out: No such file or directory
jakuje@E6430:/tmp$ cat out                   # output of nohup
nohup: ignoring input

おすすめ記事