shell脚本—for、while与until循环

一、echo命令用法

1.1 格式

echo [参数] [字符串]

1.2 常用参数

常用参数 说明
-n 表示输出不换行
-E 禁止反斜杠转义,与-e参数功能相反
-e 输出转义字符,将转义后的内容输出到屏幕上

这边我们在echo -e后面可以添加很多转义符。

转义符 说明
\b 相当于退格键,但前提是“\b”后存在字符"\b"表示删除前一个字符"\b\b"表示删除前两个字符
\c 不换行输出。后面无字符时相当于 echo -n"\c"后有字符时,将不被输出
\n 换行,但是换行后的新行从“\n”处开始另起一行\f换行,但是换行后的新行的开头位置连接着上一行的行尾
\v 与\f相同
\t 转义后表示插入tab,即横向制表符\r光标移至行首,但不换行,相当于使用“\r”以后的数字覆盖之前相等长度的字符
\\ 表示插入“\”本身

1.3 echo命令截取前后字符

举例:i=$(echo "11,22,33,44")

1.命令:echo ${i%,*}
输出结果:11,22,33
解析:从最后倒数到最短的匹配部分(用%)后面的逗号的地方被删除
2.命令:echo ${i%%,*}
输出结果:11
解析:从最后倒数到最长的匹配部分(用%%)后面的逗号的地方被删除
3.命令:echo ${i#*,}
输出结果:22,33,44
解析:从开头到最短的匹配部分(用#)后面的逗号的地方被删除
4.命令:echo ${i##*,}
输出结果:44
解析:从开头到最长的匹配部分(用##)后面的逗号的地方被删除

二、for循环

2.1 for循环结构

2.2 实例

2.2.1需求

批量添加用户

2.2.2具体

1.用户名存放在users.txt文件中,每行一个
2.初始密码为123456
3.验证脚本

2.2.3 脚本命令

for name in $(cat /root/users.txt)
do
  useradd $name
  echo 123456 | passwd --stdin $name &> /dev/null
done

2.2.4 具体操作





三、while循环

3.1 while循环结构

3.2 实例

3.2.1 需求

批量添加用户

3.2.2 具体

1.用户名以stu开头,按顺序进行编号
2.一共添加20个用户,即stu1、stu2、stu3…stu20
3.初始密码均设置为123456

3.2.3 脚本命令

a=1
while [ $a -le 20 ]
do
 useradd stu$a
 echo 123456 | passwd --stdin stu$a
 let a++
done

3.2.4 具体操作




四、until循环

4.1 until循环结构

4.2 实例

4.2.1 需求

计算1-100所有整数和

4.2.2 脚本命令

a=1
sum=0
until [ $a -gt 100 ]
do
  sum=$[$sum + $a]
  let a++
done
echo $sum

4.2.3 具体操作


posted @ 2021-07-14 20:37  落寞1111  阅读(108)  评论(0编辑  收藏  举报