我想编写一个bash脚本,执行一个命令并同时执行其他操作,如果脚本被终止,要有可能杀死该命令。例如,执行一个大文件的复制,并同时输出自复制开始以来经过的时间,但如果脚本被终止,则还要终止复制。
我不想使用rsync,原因有二:1)速度慢,2)我想学习如何做,这可能有用。
我尝试了以下内容:
until cp SOURCE DEST
do
#evaluates time, stuff, commands, file dimensions, not important now
#and echoes something
done
但它不会执行do - done
块,因为它正在等待复制结束。你能否提出建议?
&
启动一个后台作业,并使用 wait。 - cevinguntil
是同步的,不是异步的。对于异步作业,请使用后台运算符 (&
)。 - Jo So