for循环
用于已知循环次数的场景
1、基本格式
for 变量名称(注意是名称不是变量$等) [ in 名称范围 ] (可以不写)
do
执行内容 若满足循环则做什么动作
done for循环结束标志
for i in $(cat /opt/users.txt);
do
useradd $i
echo 123456 | passwd --人stdin $i
don
实验一批量添加用户。用户名存放在users.txt文件中,每行一个,初始密码均设为123456,最后验证脚本
实验二根据IP地址检查主机状态。IP地址存放在ipadds.txt文件中,每行一个,使用ping命令检测各主机的连通性
if 嵌套循环
while循环
用于不知道循环次数,需要主动结束循环或达到条件结束循环。
1、基本格式
while [ 判断条件] 使用while循环满足条件执行do,不满足不执行
do
执行动作 while循环执行动作
done while循环结束标志
举例:
vim b.sh #创建脚本b.sh
脚本内容:
#!/bin/bash
i=0
while [ $i -le 5 ] #变量i小于等于5时执行while循环
do
echo "$i" #循环执行内容,每循环一次打印$i
let i++ #每循环一次计算一次i++即i自己+1
done #while语句结束标志
sh b.sh #调用bash执行b.sh脚本
实验1 批量添加用户。用户名称以stu开头,按数字顺序进行编号,一共添加20个用户,即stu1、stu2、…、stu20,初始密码均设为123456
实验1计算1-50的和值。通过循环累加的方式计算1-50的和值
continue跳出循环
表示满足continue条件时跳出循环,但是不影响后续循环执行
break跳出循环
break跳出循环
在某个循环中遇到break直接结束此次循环,但是不影响外边嵌套的循环。
break [数字] 结束数字中的几次循环,若为2则结束自己所在循环和外边嵌套的一层循环,若为3则结束自己所在循环和外边嵌套的2层循环
常用转义字符
echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:
\b 转义后相当于按退格键(backspace),但前提是" \b “后面存在字符;” \b “表示删除前一个字符,” \b\b "表示删除前两个字符。
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。
\n 换行,被输出的字符从"\n"处开始另起一行。
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;
\v 与\f相同;
\t 转以后表示插入tab,即横向制表符;
\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖
\ 表示插入" \ "本身;