编辑: 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
使用管道进入另一个进程。如果您希望使用多个管道,这也是一个有用的工具。作为参考,这里有更多 I/O 重定向的示例。|
tee