[Linux Shell學習系列八]Shell函數-4將函數放在后台運行


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.

 

本節結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM