shell 編寫一個(gè)帶有進(jìn)度條的程序安裝腳本
需求
使用 shell 寫一個(gè) 軟件安裝腳本,帶有進(jìn)度條
示例
#!/bin/bash
# 模擬軟件安裝的步驟列表
steps=("解壓文件" "安裝依賴" "配置設(shè)置" "復(fù)制文件" "")
# 計(jì)算總步驟數(shù)
total_steps=${#steps[@]}
# 安裝進(jìn)度的初始值
progress=0
# 打印安裝進(jìn)度函數(shù)
print_progress() {
local current_step=$1
local percentage=$2
local step=$3
# 清除當(dāng)前行
printf "\r\033[K"
# 構(gòu)建進(jìn)度條字符串
local progress_bar=$(printf "[%-${total_steps}s] %d%%" "$(yes "#" | head -n $current_step | tr -d '\n')" "$percentage")
# 打印安裝進(jìn)度
printf "安裝進(jìn)度: %s %s" "$progress_bar" "$step"
}
# 循環(huán)執(zhí)行每個(gè)步驟
for ((i=0; i<total_steps; i++)); do
step=${steps[$i]}
# 模擬每個(gè)步驟的安裝操作
sleep 1
# 更新進(jìn)度
((progress = (i+1) * 100 / total_steps))
# 打印安裝進(jìn)度
print_progress "$((i+1))" "$progress" "$step"
done
# 打印安裝完成消息
printf "\n軟件安裝完成!\n"在這個(gè)示例中,使用 ANSI 轉(zhuǎn)義序列來(lái)實(shí)現(xiàn)覆蓋原來(lái)的打印信息,并保持進(jìn)度條在同一行顯示。通過(guò)使用 \r 進(jìn)行回車,然后使用 \033[K 清除當(dāng)前行的內(nèi)容,可以實(shí)現(xiàn)覆蓋效果。
在 print_progress 函數(shù)中,首先清除當(dāng)前行的內(nèi)容,然后構(gòu)建進(jìn)度條字符串,并使用 \r 實(shí)現(xiàn)回車到行首的效果。進(jìn)度條字符串包含了當(dāng)前步驟的填充部分和進(jìn)度百分比。
最后,通過(guò)調(diào)用 print_progress 函數(shù)來(lái)打印安裝進(jìn)度,并在安裝完成后打印安裝完成消息。
效果

到此這篇關(guān)于shell 編寫一個(gè)帶有進(jìn)度條的程序安裝腳本的文章就介紹到這了,更多相關(guān)shell 進(jìn)度條安裝腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本實(shí)現(xiàn)監(jiān)控某個(gè)進(jìn)程意外停止后拉起進(jìn)程
今天小編就為大家分享一篇關(guān)于shell腳本實(shí)現(xiàn)監(jiān)控某個(gè)進(jìn)程意外停止后拉起進(jìn)程,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
淺析使用?Auditbeat?模塊監(jiān)控?shell?命令的問(wèn)題
Auditbeat Audited 模塊可以用來(lái)監(jiān)控所有用戶在系統(tǒng)上執(zhí)行的 shell 命令,在終端用戶偶爾才會(huì)登錄的服務(wù)器上,通常需要進(jìn)行監(jiān)控,本文給大家介紹使用?Auditbeat?模塊監(jiān)控?shell?命令的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02
Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式
本文主要介紹了Shell腳本實(shí)現(xiàn)進(jìn)度條的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Shell腳本實(shí)現(xiàn)簡(jiǎn)單分割字符串
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)簡(jiǎn)單分割字符串,本文講解使用CUT命令實(shí)現(xiàn)以逗號(hào)、分號(hào)或其它分隔符來(lái)切割字符串,需要的朋友可以參考下2015-02-02

