4.3.2 for 条件循环语句
for 循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理。当要处理的
数据有范围时,使用 for 循环语句就再适合不过了。for 循环语句的语法格式如图 4-21 所示。
图 4-21 for 范围循环语句
下面使用 for 循环语句从列表文件中读取多个用户名,然后为其逐一创建用户账户并设
置密码。首先创建用户名称的列表文件 users.txt,每个用户名称单独一行。读者可以自行决定
具体的用户名称和个数:
[root@linuxprobe~]# vim users.txt
andy
barry
carl
duke
eric
george
接下来编写 Shell 脚本 addusers.sh。在脚本中使用 read 命令读取用户输入的密码值,然
后赋值给 PASSWD 变量,并通过-p 参数向用户显示一段提示信息,告诉用户正在输入的内容
即将作为账户密码。在执行该脚本后,会自动使用从列表文件 users.txt 中获取到所有的用户
4.3.3 while 条件循环语句
while 条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往
往在执行前并不确定最终执行的次数,完全不同于 for 循环语句中有目标、有范围的使用场景。
while 循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,
为假就结束循环。while 语句的语法格式如图 4-22 所示。
图 4-22 while 条件循环语句
接下来结合使用多分支的 if 条件测试语句与 while 条件循环语句,编写一个用来猜测数
值大小的脚本 Guess.sh。该脚本使用$RANDOM 变量来调取出一个随机的数值(范围为 0~
32767),然后将这个随机数对 1000 进行取余操作,并使用 expr 命令取得其结果,再用这个
数值与用户通过 read 命令输入的数值进行比较判断。这个判断语句分为 3 种情况.