Zenn
Open3

`$ (cmd &) &> /dev/null`とすれば、ジョブ番号の表示とプロセスの終了通知も表示抑制できる

あいや - aiya000あいや - aiya000

通常は&でプロセスをバックグラウンドで実行すると、ジョブ番号とPIDが表示されます。
またそのプロセスの終了時には、その終了が通知されます。

$ sleep 1 &
[1] 82925

# 1秒待つ
[1]  + done       sleep 1

これは以下の形式でも同様です。
&>> foo 2>&1の略記です。詳しくは この記事 を参照。)

$ sleep 1 &> /dev/null &
[1] 83209

# 1秒待つ
[1]  + done       sleep 1 &> /dev/null
$

なのでこれらの表示は抑制できないと思っていたのですが、以下のようにすると抑制できるようです。

$ (sleep 1 &) &> /dev/null
(出力無しで、次のCLIにすぐ移る)
$
あいや - aiya000あいや - aiya000

ちなみに宣伝ですが、bash-toysというbash scriptのおもちゃ箱(ツールコレクション)を作っています!

./bin/startではこの記事の方法をユーティリティ化していますので、ぜひ使ってみてください!

./bin/start
#!/bin/bash
("$@" &) &> /dev/null

wgetやcurlで、ツールを個別ダウンロードしてもOKです!

$ wget https://raw.githubusercontent.com/aiya000/bash-toys/refs/heads/main/bin/start -O path/to/bin/start
# or
$ curl https://raw.githubusercontent.com/aiya000/bash-toys/refs/heads/main/bin/start -o path/to/bin/start

詳しくはInstallationを見てね。

ログインするとコメントできます