用命令test或[ 測試乙個條件是否成立。如果測試條件為真,命令的exit status為0,測試條件為假,exit status為1。
這裡輸入的數字比10大,條件成立為0,比10小條件不成立為1.
整數比較
測試命令-lt
//小於
-le//小於等於
-gt//大於
-ge//大於等於
-eq//等於
-ne//不等於
與 或 非 的測試命令
分支語句if/then/elif/else/fi
if可以新增對任何命令的檢測,它是根據命令的退出碼判斷#!/bin/bash
read val
if [ $val
-eq100 ]
then
echo
"true"
else
echo
"false"
fi
if支援巢狀
if不能出現空的**塊
case…esac
可以檢測所有語句包括正規表示式
for/do/done#!/bin/bash
read op
case
$opin
start )
echo
"start"
;;stop )
echo
"stop"
;;restart )
echo
"restart"
;;* )
echo
"default"
esac
#!/bin/bash
for i in
doecho
$idone
while/do/done#!/bin/bash
for(( i=1; i<10; i++))//當成c語言的語法來處理
doecho
$idone
#!/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。多數轉義序列超過兩個字元,故通常...