一、for循环语句
基本结构:
for 变量名 in 取值列表
do
命令序列
done
几种表示for取值范围的方法:
for i in {1..10} #取值范围1-10,每次递增1
for i in {1..10..2} #取值范围1-10,每次递增2
for i in $(seq 1 10) #取值范围1-10,每次递增1
for i in $(seq 1 2 10) #取值范围1-10,每次递增2
for ((i=1;i<=10;i++)) #取值范围1-10,每次递增1
for ((i=1;i<=10;i+=2)) #取值范围1-10,每次递增2
二、while循环语句
重复测试某个条件,只要条件成立则反复执行
基本结构:
while 条件测试操作
do
命令序列
done
实例1:添加stu开头的用户20个,以1-20序号,均设置123456为密码
实例2:随机生成一个小于1000的整数,进行猜测,根据提示信息猜出数字,并统计猜测次数
三、untli循环语句
重复测试某个条件,只要条件不成立则反复执行
基本结构:
until 条件测试操作
do
命令序列
done
使用方法与while相同,但执行条件相反,一般不常使用
四、continue和break
1、break
有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。
这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
2、continue
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
五、IFS字段分隔符
默认包含空格,制表符,换行符
字段分隔符的环境变量不要随意修改,如果要改的话要进行备份恢复
IFS.OLD=$IFS
IFS=$’\n’
脚本内容
IFS=$IFS.OLD
六、echo转义符
echo -n 表示不换行输出
echo -e 输出转义符,将转义后的内容输出到屏幕上
转义符 | 功能 |
---|---|
\b | 转义后相当于按退格键(backspace) ,但前提是"b"后面存在字符; "\b"表示删除前一个字符, "\bb"表示删除前两个字符。 |
\c | 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo-n;但是当"\c"后面仍然存在字符时, "\c"后面的字符将不会被输出。 |
\n | 换行,被输出的字符从"\n"处开始另起一行 |
\f | 换行,但是换行后的新行的开头位置连接着上一行的行尾; |
\v | 与\f相同 |
\t | 转以后表示插入tab,即横向制表符; |
\r | 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"1r"之前同等长度的字符;但是当"r"后面不存在任何字符时, "\r"前面的字符不会被覆盖 |
\\ | 表示插入""本身: |