1. 程式人生 > >8、腳本顏色顯示(看命令echo更全)和util循環和for循環中級用法

8、腳本顏色顯示(看命令echo更全)和util循環和for循環中級用法

util循環 for循環

顏色顯示
我們之前說過echo要支持反斜線的轉義的話,用-e選項
\033表示的是ctrl(顏色的符號),然後使用一個左中括號,然後可以控制它的顏色,結束符是\033[0m
基本使用方法
\033[(顏色符號+m,如31m,41,m)(內容)\033[0m
如\033[33mHelloWolrd\033[0m就可以出現HelloWorld是顏色顯示的了
1m控制字體的,前景色用3來引導(然後在3後面跟上1-7任意一個,代表不同的顏色,如下圖)

技術分享圖片

紅綠黃藍”玫紅”青
背景色用4來表示而如果想一起使用前景色和背景色,那只需要在左中括號寫完之後,用分號隔開就可以了,如下圖所示技術分享圖片

顏色提示:這個對編程提問有用——顏色控制字體顯示格式
因此在腳本的時候會比較有用

(其他的如5,是會有閃動的,7是把前景和背景翻過來的)技術分享圖片

測試
技術分享圖片

腳本編程之until循環
while
whilecondition ;do
statement
done
進入循環條件:條件滿足
退出循環條件:條件不滿足
但是until剛好相反
until CONDITION;do
statement
...
done
進入循環條件:條件不滿足
退出條件:條件滿足
因此while什麽什麽不滿足的時候,就可寫成until什麽什麽即可,也更為方便

技術分享圖片

所以但凡使用while的時候都可以使用until循環
實例

技術分享圖片

這裏上下可以看到,縮減了很多。
因為我們如果是要取得執行狀態結果的話,我們完全可以把這個命令當做條件來使用

技術分享圖片

我們再來進階學習一下for循環的更高深的知識

原來是
for 變量;do
循環體
done

現在是
for ((expr1 ; expr2 ; expr3 ));do
循環體
done
這個是近似於c語言的風格的
expr1是初始值
expr2是退出循環邊界
expr3是對初始值的改變
在雙括號裏面可以使用<=這些符號的,不像[]中只能用lt,gt這些
技術分享圖片

所以for循環有些用法在某一些腳本編程會更方便

實例操作技術分享圖片

ping
ping的-c命令是確定ping多少次
-W是指定timeout
技術分享圖片

實例操作寫一個for循環
[root@manage ~]# vim test.sh
#!/bin/bash
for ((i=1;i<=15;i++));do
ping -c 1 -W 1 172.16.1.${i} &>/dev/null

ZhuangT=echo $?
if [ $ZhuangT -eq 0 ]; then
echo -e "\033[31mThe host "172.16.1.${i}" is up\033[0m"
else
echo -e "\033[33mThe host "172.16.1.${i}" is down\033[0m"
fi
done
測試結果

技術分享圖片

8、腳本顏色顯示(看命令echo更全)和util循環和for循環中級用法