8脚本颜色显示(看命令echo更全)和util循环和for循环中级用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8脚本颜色显示(看命令echo更全)和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循环
[[email protected] ~]# 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循环中级用法的主要内容,如果未能解决你的问题,请参考以下文章

Linux中让echo命令显示带颜色的字

如何让 osx shell 脚本在 echo 中显示颜色

shell脚本中echo显示内容带颜色

Shell工作笔记01

echo命令

shell脚本中echo显示内容带颜色显示