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)義序列來實(shí)現(xiàn)覆蓋原來的打印信息,并保持進(jìn)度條在同一行顯示。通過使用 \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)度百分比。
最后,通過調(diào)用 print_progress 函數(shù)來打印安裝進(jìn)度,并在安裝完成后打印安裝完成消息。
效果

到此這篇關(guān)于shell 編寫一個(gè)帶有進(jìn)度條的程序安裝腳本的文章就介紹到這了,更多相關(guān)shell 進(jìn)度條安裝腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本實(shí)現(xiàn)ftp上傳下載文件功能
這篇文章主要介紹了shell腳本實(shí)現(xiàn)ftp上傳下載文件功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08
Shell expr命令進(jìn)行整數(shù)計(jì)算的實(shí)現(xiàn)
這篇文章主要介紹了Shell expr命令進(jìn)行整數(shù)計(jì)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Shell腳本處理浮點(diǎn)數(shù)的運(yùn)算和比較實(shí)例
這篇文章主要介紹了Shell腳本處理浮點(diǎn)數(shù)的運(yùn)算和比較實(shí)例,文中分別使用了bc或awk實(shí)現(xiàn),需要的朋友可以參考下2014-06-06
Linux命令dos2unix命令示例詳解(將DOS格式文本文件轉(zhuǎn)換成Unix格式)
dos2unix命令 用來將DOS格式的文本文件轉(zhuǎn)換成UNIX格式的,而Unix格式的文本文件在Windows下用Notepad打開時(shí)會(huì)拼在一起顯示,本文介紹Linux命令dos2unix命令示例詳解(將DOS格式文本文件轉(zhuǎn)換成Unix格式),感興趣的朋友一起看看吧2024-04-04

