编辑: user000001的答案与;
分离的命令。我在原始示例中将命令与&&
分开。我注意到的唯一区别是,如果您使用&&
,则不必使用大括号将您的基地命令包围。分号更灵活一些,所以我更新了示例。
,想到的第一件事是
{ sleep 2; echo "Sleep done"; } &
您还可以抑制来自上面的行stderr
输出随行:
{ { sleep 2; echo "Sleep done"; } & } 2>/dev/null
如果你想保存程序输出(stdout
)到日志文件供以后查看,您可以使用:
{ { sleep 2; echo "Sleep done"; } & } 2>/dev/null 1>myfile.log
这里甚至你可以使用一个通用的形式(你甚至可以使一个别名,这样就可以在任何时间运行,而不必键入这么多!):
# dont hesitate to add semicolons for multiple commands
CMD="cp My_Huge_File.txt New_directory"
{ eval $CMD & } 2>/dev/null 1>myfile.log
您还可能管stdout
如果您希望使用其他脚本或软件实时处理输出,请使用|
。如果您想使用多个管道,tee
也是一个有用的工具。仅供参考,I/O重定向here还有更多示例。
我的Mac上的'bash'已经告诉我何时完成后台作业。这在更新的版本中有所改变吗? –