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.
本節結束