1. ホーム
  2. bash

[解決済み] ジョブやプロセスIDを表示せずにバックグラウンドでbashコマンドを実行する

2023-03-17 06:31:52

質問

bashでバックグラウンドでプロセスを実行するのはとても簡単です。

$ echo "Hello I'm a background task" &
[1] 2076
Hello I'm a background task
[1]+  Done                    echo "Hello I'm a background task"

しかし、出力は冗長です。最初の行にはバックグラウンドタスクのジョブIDとプロセスIDが出力され、次にコマンドの出力、最後にジョブID、ステータス、ジョブをトリガーしたコマンドを出力します。

バックグラウンド タスクの実行の出力を抑制して、出力が最後にアンパサンドがない場合とまったく同じに見えるようにする方法はありますか。すなわち

$ echo "Hello I'm a background task" &
Hello I'm a background task

私が尋ねる理由は、タブ補完コマンドの一部としてバックグラウンド プロセスを実行したいので、そのコマンドの出力が中断されないと意味がないからです。

どのように解決するのですか?

補完とは関係ありませんが、サブシェルに呼び出しを入れることで、その出力を抑制することができます。

(echo "Hello I'm a background task" &)