D16
&操作符可以将命令放在后台运行并释放当前终端,同样也可以把函数放在后台运行。
$ cat progressdots.sh #!/bin/bash #20200526 progress(){ #显示进度条的函数(显示一连串的小圆点) echo -n "$0: Please wait..." while true #无限循环,输出进度条 do echo -n "." sleep 5 done } dobackup(){ #进行备份的函数 tar czvf /dev/st0 /home > /dev/null 2>&1 #备份命令 } progress & #将显示进度条的函数放在后台运行 MYSELF=$! #获取进度条函数的PID dobackup #执行备份函数 kill $MYSELF > /dev/null 2>&1 #备份函数完成后,停止进度条函数 echo -n "...done."
执行结果:
$ ./progressdots.sh ./progressdots.sh: Please wait.......done.
本节结束