Open3
`$ (cmd &) &> /dev/null`とすれば、ジョブ番号の表示とプロセスの終了通知も表示抑制できる
通常は&
でプロセスをバックグラウンドで実行すると、ジョブ番号と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にすぐ移る)
$
すごい!
ちなみに宣伝ですが、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を見てね。
ログインするとコメントできます