リダイレクトで使用するときの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