shell實現乙個簡單進度條

2021-08-03 05:10:07 字數 2610 閱讀 2930

用命令test或[ 測試乙個條件是否成立。如果測試條件為真,命令的exit status為0,測試條件為假,exit status為1。

這裡輸入的數字比10大,條件成立為0,比10小條件不成立為1.

整數比較

-lt

//小於

-le//小於等於

-gt//大於

-ge//大於等於

-eq//等於

-ne//不等於

測試命令

與 或 非 的測試命令

分支語句if/then/elif/else/fi

#!/bin/bash

read val

if [ $val

-eq100 ]

then

echo

"true"

else

echo

"false"

fi

if可以新增對任何命令的檢測,它是根據命令的退出碼判斷

if支援巢狀

if不能出現空的**塊

case…esac

可以檢測所有語句包括正規表示式

#!/bin/bash

read op

case

$opin

start )

echo

"start"

;;stop )

echo

"stop"

;;restart )

echo

"restart"

;;* )

echo

"default"

esac

for/do/done

#!/bin/bash

for i in

doecho

$idone

#!/bin/bash

for(( i=1; i<10; i++))//當成c語言的語法來處理

doecho

$idone

while/do/done

#!/bin/bash

i=0while [ $i -le 10 ]

doecho

$ilet i++

done

$0//相當於c語言main函式的argv[0]

$1,$2,$3... //位置引數,相當於c語言main函式的argv[1],argv[2]...

$#//相當於main函式的argc-1

$@//表示引數列表「$1」"$2"

...$?//上一條命令的exit status

$$//當前shell的程序號

#!/bin/bash

function fun

()fun "$@"//傳參

ret=$?//接受上一條命令的退出碼

if [ $ret

-eq0 ]

then

echo

"success"

else

echo

"false"

fi

arr=(123

"e"5.34)//用空格隔開

echo $//輸出下標為3的

echo $//將陣列整體輸出

echo $//將陣列個數作為變數輸出

進度條實現

#!/bin/bash

i=0bar=''

index=0

arr=( "|"

"/""-"

"\\" )

while [ $i -le 100 ]

dolet index=index%4

printf

"[%-100s][%d%%][\e[43;46;1m%c\e[0m]\r"

"$bar"

"$i"

"$"let i++

let index++

usleep 30000

bar+='#'

done

printf

"\n"

實現乙個簡單的進度條

1 首先我們用固定在左右兩邊,中間預留空間,然後用 進行填充在這裡我們用 表示1 通過增加字元 來保證進度的增加。printf 100s r str 格式化輸出。表示左對齊 100表示列寬,r 表示回車,即每 次列印完使游標回到行首在這裡需要解釋一下 r 和 n 這兩個概念 回車 r 表示回到當前行...

實現乙個彩色進度條

顯示序列 033 0m 關閉轉義序列 033 1m 粗體或高亮 033 5m 閃爍 前景顏色序列 033 30m 黑 033 31m 紅 033 32m 綠 033 33m 黃 033 34m 藍 033 35m 洋紅 033 36m 青 033 37m 白 背景顏色序列 與前景顏色對對應,前景色是...

shell指令碼實現乙個彩色的進度條

首先來了解一下如何設定終端的字元顏色 終端的字元顏色由轉義序列 escape sequence 控制,是文字模式下的系統顯示功能,與具體語言無關。轉義序列以控制字元 esc 開頭。該字元的ascii碼十進位制表示為27,十六進製制表示為0x1b,八進位制表示為033。多數轉義序列超過兩個字元,故通常...