Shell脚本三种循环和常用转义字符
前提:
脚本执行任务的时候总会遇到需要重复执行的时候,为了节省资源,除了计划任务,我们还可以使用脚本来完成,接下来就是Shell脚本中的三种循环。
for循环
for循环,又有人称之为条件循环,或者for i in ,其实就是for循环的特性,次数和给与的条件是成正比的
for语句结构
读取不同的变量值,用来逐个执行同一组命令
for 变量名 in 取值列表
do
命令序列
done
例题:
-
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和。
-
求1到该数的奇数和,偶数和
-
批量添加用户
用户名存放在788.txt文件中,每行一个
初始密码均为123456
验证
根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个
使用ping命令检查各主机的连通性
while循环
只要条件成立,则反复循环,不成立即停止
while语句结构
while 条件测试操作
do
命令序列
done
例题:
-
计算从1到100所有整数的和
-
示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
-
批量添加用户
用户名以788开头,按数字顺序进行编号
一共1-10,添加10个用户
初始密码均设为123456
until循环
重复测试某个条件,只要条件不成立则反复循环
until语句结构
until 条件测试操作
do
命令序列
done
例题:
- 计算1~100的和
常用转义字符
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"前面的字符不会被覆盖
\ 表示插入""本身;
例题:购物
逛淘宝选购商品,每家商店有五种商品选购(衣服400元,裤子300元,鞋子250元,帽子50元,袜子5元),每次选购完或不买都会提示用户是否继续逛下一家商店,如果不再继续逛的话进行购物车结算总额。
[root@promote opt]#vim shopping.sh