命令替换和撤消后台任务

时间:2014-07-21 17:43:43

标签: bash command-substitution

有没有办法强制命令替换退出离开baground任务?

示例:

cat test.sh
#! /bin/bash
sleep 5 &
echo "foo bar"

在没有命令替换的情况下运行它:

time bash test.sh
foo bar

real    0m0.005s
user    0m0.005s
sys 0m0.000s

使用命令替换:

time echo $(bash test.sh)
foo bar

real    0m5.004s
user    0m0.002s
sys 0m0.000s

1 个答案:

答案 0 :(得分:3)

您需要为sleep重定向stdout和stderr:

#! /bin/bash
sleep 5 >/dev/null 2>&1 &
echo "foo bar"

bash command substitution on a script that executes a background task