最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式

 更新時(shí)間:2023年03月30日 09:25:30   作者:Sudley.su  
本文主要介紹了Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、腳本中各模塊(或函數(shù))運(yùn)行過(guò)程可以量化,則可以直接使用帶百分比的進(jìn)度條。

#!/bin/bash

mark=''
for ((ratio=0;${ratio}<=100;ratio+=5))
do
        sleep 0.2
        printf "progress:[%-40s]%d%%\r" "${mark}" "${ratio}"
        mark="##${mark}"
done
echo

如下圖,進(jìn)度條中’#'的數(shù)量和進(jìn)度條長(zhǎng)度成正比,printf打印每次只回車(chē)不換行,新的異常打印會(huì)覆蓋之前的打印,執(zhí)行完成后使用echo換行。

2、有些情況下你也許不知道程序什么時(shí)候結(jié)束,只是需要一個(gè)動(dòng)態(tài)的進(jìn)度條來(lái)表示程序正在運(yùn)行,比如進(jìn)度條由[----------]變成[>---------],進(jìn)度條里面的-不斷被>替換,當(dāng)所有的-都被替換后所有符號(hào)又重新變成-,直到程序結(jié)束運(yùn)行。

#!/bin/bash

trap 'onCtrlC' INT
function onCtrlC () {
        #捕獲CTRL+C,當(dāng)腳本被ctrl+c的形式終止時(shí)同時(shí)終止程序的后臺(tái)進(jìn)程
        kill -9 ${do_sth_pid} ${progress_pid}
        echo
        echo 'Ctrl+C is captured'
        exit 1
}

do_sth() {
        #運(yùn)行的主程序
        sleep 10
}

progress() {
        #進(jìn)度條程序
        local main_pid=$1
        local length=20
        local ratio=1
        while [ "$(ps -p ${main_pid} | wc -l)" -ne "1" ] ; do
                mark='>'
                progress_bar=
                for i in $(seq 1 "${length}"); do
                        if [ "$i" -gt "${ratio}" ] ; then
                                mark='-'
                        fi
                        progress_bar="${progress_bar}${mark}"
                done
                printf "Progress: ${progress_bar}\r"
                ratio=$((ratio+1))
                #ratio=`expr ${ratio} + 1`
                if [ "${ratio}" -gt "${length}" ] ; then
                        ratio=1
                fi
                sleep 0.1
        done
}

do_sth &
do_sth_pid=$(jobs -p | tail -1)

progress "${do_sth_pid}" &
progress_pid=$(jobs -p | tail -1)

wait "${do_sth_pid}"
printf "Progress: done                \n"

下圖是程序運(yùn)行的幾個(gè)狀態(tài)

到此這篇關(guān)于Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式的文章就介紹到這了,更多相關(guān)Shell 進(jìn)度條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)

    shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)

    這篇文章主要介紹了shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法

    shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法

    這篇文章主要介紹了shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Linux 中C語(yǔ)言getcwd()函數(shù)的用法

    Linux 中C語(yǔ)言getcwd()函數(shù)的用法

    這篇文章主要介紹了Linux 中C語(yǔ)言getcwd()函數(shù)的用法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 在Linux中檢查文件大小的4種常用方法

    在Linux中檢查文件大小的4種常用方法

    在 Linux 操作系統(tǒng)中,經(jīng)常需要檢查文件的大小,無(wú)論是管理文件系統(tǒng)空間,還是確定文件傳輸?shù)拇笮∠拗?了解文件大小是非常重要的,本文將介紹 4 種常用的方法,幫助你在 Linux 中檢查文件的大小,需要的朋友可以參考下
    2023-09-09
  • 實(shí)時(shí)查看系統(tǒng)流量的Shell腳本分享

    實(shí)時(shí)查看系統(tǒng)流量的Shell腳本分享

    這篇文章主要介紹了實(shí)時(shí)查看系統(tǒng)流量的Shell腳本分享,本文直接給出實(shí)現(xiàn)代碼,使用時(shí)保存到一個(gè)sh文件中并運(yùn)行即可,需要的朋友可以參考下
    2014-12-12
  • Linux Shell腳本系列教程(七):腳本調(diào)試

    Linux Shell腳本系列教程(七):腳本調(diào)試

    這篇文章主要介紹了Linux Shell腳本系列教程(七):腳本調(diào)試,本文講解了Bash內(nèi)建調(diào)試功能和自定義調(diào)試功能等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • 利用管道實(shí)現(xiàn)sudo命令免輸入密碼的方法

    利用管道實(shí)現(xiàn)sudo命令免輸入密碼的方法

    這篇文章主要介紹了利用管道實(shí)現(xiàn)sudo命令免輸入密碼的方法,即不輸入密碼執(zhí)行sudo命令方法,需要的朋友可以參考下
    2014-03-03
  • Linux 中awk 提取包含某個(gè)關(guān)鍵字的段落

    Linux 中awk 提取包含某個(gè)關(guān)鍵字的段落

    AWK是一種處理文本文件的語(yǔ)言,是一個(gè)強(qiáng)大的文本分析工具。這篇文章主要介紹了Linux 中awk 提取包含某個(gè)關(guān)鍵字的段落實(shí)例代碼,需要的朋友可以參考下
    2020-01-01
  • ansible執(zhí)行shell腳本的方法

    ansible執(zhí)行shell腳本的方法

    本文主要介紹了ansible執(zhí)行shell腳本的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • bash判斷文件或文件夾是否存在的shell代碼

    bash判斷文件或文件夾是否存在的shell代碼

    這篇文章主要介紹了bash判斷文件或文件夾是否存在的shell代碼,需要的朋友可以參考下
    2017-05-05

最新評(píng)論

荆门市| 高安市| 黎城县| 巨鹿县| 枣阳市| 益阳市| 铜梁县| 蕉岭县| 隆化县| 江津市| 永城市| 北碚区| 乌兰县| 镇平县| 都昌县| 石柱| 六枝特区| 西安市| 泽州县| 克什克腾旗| 彩票| 从化市| 龙江县| 红原县| 泸定县| 全椒县| 安丘市| 西林县| 周宁县| 法库县| 通城县| 乐业县| 搜索| 巴青县| 黔江区| 北安市| 灵石县| 云阳县| 肃北| 监利县| 西盟|