我想返回一个脚本的结果,该脚本也会启动后台任务。命令替换运算符等待后台任务,使调用变慢。我创建了以下示例来说明问题:
function answer {
sleep 5 &
echo string
}
echo $(answer)
有没有办法在不等待它创建的任何后台作业的情况下调用命令?
谢谢,
标记
答案 0 :(得分:3)
问题是sleep
继承了stdout并保持打开状态。你可以简单地重定向stdout:
answer() {
sleep 5 > /dev/null &
echo "string"
}
echo "$(answer)"
答案 1 :(得分:0)
如果您打算在该功能正常运行的同时快速继续该程序,您可以调用该函数在后台运行。
function answer {
sleep 5
echo Second
}
echo $(answer) &
echo First
其输出将是
First
Second