Linux的Shell脚本——day3——循环、echo颜色

for 循环

for  变量名  in  值列表
do
    命令序列
done

  值列表:
     {1..10}  产生1到10的多个数字的列表,但是里面不能有变量
     $(seq $起始数  $终止数字)   可以用变量生成多个数据


类C++的for循环

for ((i=1;i<=5;i++))
do
   命令序列
done

for的无限循环

for ((i=1;i<=$[i+1];i++))
do
   命令序列
done

ping命令

   作用 :可以测试某台主机的连通性

  使用-c选项可以设置ping的次数,
  使用-i选项可以设置多次ping之间的间隔时间(单位秒),
  使用-W选项可以设置ping不通时的超时时间(单位秒)。


while循环

基本格式:

while  条件测试
do
    命令序列
done

    符合条件的话,执行下面的语句,执行完后进行判断,成功就继续循环执行,失败就退出循环

无限循环

while :
do
    命令序列
done

case检索

 case  $变量  in
 模式1)
    命令序列1 ;;
 模式2)
    命令序列2 ;;
 *)
    默认命令序列
 esac

    检索变量 和下面的各个模式,匹配后就执行后面的语句

    注意: 1.每个模块的命令中,最后一个命令后面要加;;
                2.变量前面要加$ ,如果没有$,就是拿变量名进行匹配
                3.这里只能做等值匹配,也就是说只有相同匹配,不同不匹配,不能大小逻辑匹配


函数

函数名() {
    命令序列
    .. ..
}

调用
   函数名  参数1 参数2
   其中参数1在函数中用$1代表,可以吧函数当做一个脚本,基本的变量都能用

取消一个函数的定义
   unset 函数名 


echo的特殊用法
     echo -e "\033[$编号m $内容 \033[0m"

1 加粗 7 变成反色,既背景色和字体色对调
3 斜体 9 字体中间划线
4 下划线    
 
30 字黑色 90 字浅黑色
31 字红色 91 字浅红色
32 字绿色 92 字浅绿色
33 字黄色 93 字浅黄色
34 字蓝色 94 字浅蓝色
35 字紫色 95 字浅紫色
36 字天蓝色 96 字浅天蓝色
37 字白色 97 字浅白色
 
40 背景黑色 44 背景蓝色
41 背景红色 45 背景紫色
42 背景绿色 46 背景天蓝色
43 背景黄色 47 背景白色

后台执行

{
   命令1
   命令2
   命令……
} &

    这就可以使命令在后台执行,配合循环,可以实现多线程,大大提高效率

    在程序后面加入 wait  可以使得等所有在后台子进程结束脚本结束

fork炸弹 命令行中输入   

 .(){ .|.&};.

     原理,定义一个函数,名叫 "."  ,然后函数中的内容就是在后台调用 "." 这个函数,导致内存瞬间消耗殆尽,致使死机


中断

continue 结束本次循环的一次循环,跳过下面语句的,但是仍然继续循环
break 结束循环
exit 结束脚本

猜你喜欢

转载自blog.csdn.net/Yu1543376365/article/details/82669202