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 | 结束脚本 |