Shell脚本之循环语句和转义字符
一、转义字符
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"前面的字符不会被覆盖
\\ 表示插入"\"本身;
二、for循环语句
for 变量 in 取值列表
do
命令
done
示例:1到100整数的和
示例:过滤1到100所有整数的奇偶数
示例:提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
④求从1到100所有整数的偶数和、奇数和
示例:检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip
示例:输出/dev目录中的所有可执行文件
三、while循环语句
while 条件
do
命令
done
示例:计算从1到100所有整数的和
示例:过滤出从1到100所有整数的奇偶数
示例:提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
示例:求从1到100所有整数的偶数和、奇数和
示例:检测指定范围主机是否通信,并将通信的主机ip输出到文件host_ip
示例:批量添加用户; 用户名称以stu开头,按数字顺序进行编号;
一共添加20个用户,即stu1、stu2、…、stu20
初始密码均设为123456
示例:猜商品价格游戏;通过变量RANDOM获得随机数;提示用户猜测并记录次数,猜中后退出循环
四、until循环语句
执行do语句直到条件为假
until 不成立的条件
do
done
示例:计算1-50的和值
五、结束循环break和continue
for ((a=1; a<=5;a++))
do
echo "外循环第$i次"
if [ $a -eq 3 ];then
break
fi
for ((b=1; b<=5;b++))
do
echo "内循环第$b次"
if [$b -eq 3 ];then
break
fi
done
done
break 2 跳出2层循环
continue :中止某次循环中的命令,但不会完全中止整个命令
#!/bin/bash
for ((a=1; a<=15; a++))
do
if [ $a -gt 5 ] && [ $a -lt 10 ]
then
continue
fi
echo "current value: $a"
done
六、IFS字段分隔符
默认包含 空格,制表符,换行符
查看命令:set | grep IFS
IFS=$' \t\n'
修改成只换行
IFS=$'\n'
IFS=:
IFS=','
IFS.OLD=$IFS
IFS=$'\n'
...
IFS=$IFS.OLD
输出环境变量PATH所包含的所有目录以及其中的所有可执行文件