バックグラウンドで次のコマンドを実行するのが困難です。
find /dir -iregex ".*\.\(jpg\|jpeg\)" -exec jpegoptim --strip-all {} \; -exec sleep 1 \;
nohup
最初に追加しようとしましたが、運がありませんでした。また、&
最後に追加しようとしましたが、運がありません。コメントありますか?
答え1
質問によると、スクリプト出力をオフにしたいと思いますか?この試み:
nohup find /dir -iregex ".*\.\(jpg\|jpeg\)" -exec jpegoptim --strip-all {} \; -exec sleep 1 \; 0<&- >&- 2>&- &
重複の可能性があります。詳細については、次を参照してください。https://stackoverflow.com/a/10908325/9008720
タスクを実行するためのスクリプトを生成すると便利です。たとえば、次のようになります。
#!/bin/sh
nohup "$@" 0<&- >&- 2>&- &
次にmakeをo
実行するときにそれを呼び出してバックグラウンドで実行するようにします。o some command script
some command script
編集する:
最近orを>&- 2>&-
使用すると、いくつかの問題が発生する可能性があるため、より良い選択になることがわかりました。を含むシェルスクリプトと一緒に使用するか、を含むシェルスクリプトと組み合わせて使用すると、効果はありませんが、問題は発生しません。また、出力が完全にオフになるのではなく、出力が完全にオフになる現象です。これらの問題の原因が何であるかよくわかりません。おそらく、いくつかのプログラムはstdoutまたはstderrをオフにしても正常に動作しないと思いました。xsel
mpv
>/dev/null 2>&1
>&-
2>&-
xsel -ib
xsel -ib
xclip
>&- 2>&-
mpv
>/dev/null 2>&1
mpv