dw做的简单的个人网站网盘,做网站是怎样赚钱,男孩子怎么做网站推广,罗定市住房和城乡建设局网站for 循环语句
允许脚本一次性读取多个信息#xff0c;然后逐一对信息进行操作处理。当要处理的数据有范围时#xff0c;使用for循环语句。 使用 for 循环语句从列表文件中读取多个用户名#xff0c;然后为其逐一创建用户账户并设 置密码。首先创建用户名称的列表文件users.…for 循环语句
允许脚本一次性读取多个信息然后逐一对信息进行操作处理。当要处理的数据有范围时使用for循环语句。 使用 for 循环语句从列表文件中读取多个用户名然后为其逐一创建用户账户并设 置密码。首先创建用户名称的列表文件users.txt每个用户名称单独一行。
[rootlocalhost ~]# cat users.txt
marry
xiaoming
xiaohong
trick1
trick2
trick3
trick4
trick5
trick6
trick7在脚本中使用 read 命令读取用户输入的密码值然 后赋值给PASSWD变量 并通过-p参数向用户显示一段提示信息告诉用户正在输入的内容 即将作为账户密码。 在执行该脚本后会自动使用从列表文件 users.txt 中获取到所有的用户 名称 然后逐一使用“id用户名”命令查看用户的信息并使用$?判断这条命令是否执行成 功也就是判断该用户是否已经存在。 在输入为账户设定的密码后将由脚本自动检查 并创建这些账户。 由于已经将多余的信息通过输出重定向符转移到了/dev/null黑洞文件中 因此 在正常情况下屏幕窗口除了“用户账户创建成功”Create success的提示后不会有其他内容
[rootlocalhost ~]# cat addusers.sh
#!/bin/bash
read -p 输入你的密码 PASSWD
for UNAME in cat users.txt
doid $UNAME /dev/nullif [ $? -eq 0 ]thenecho $UNAME , ALready existselseuseradd $UNAME /dev/nullecho $PASSWD | passwd --stdin /dev/nullecho $UNAME , create successfi
done[rootlocalhost ~]# bash addusers.sh
输入你的密码123456
marry , create success
xiaoming , create success
xiaohong , create success
trick1 , create success
trick2 , create success
trick3 , create success
trick4 , create success
trick5 , create success
trick6 , create success
trick7 , create success /dev/null是一个被称作Linux黑洞的文件把输出信息重定向到这个文件等同于删 除数据类似于没有回收功能的垃圾箱可以让用户的屏幕窗口保持简洁。 创建成功
[rootlocalhost ~]# tail -10 /etc/passwd
marry:x:1001:1001::/home/marry:/bin/bash
xiaoming:x:1002:1002::/home/xiaoming:/bin/bash
xiaohong:x:1003:1003::/home/xiaohong:/bin/bash
trick1:x:1004:1004::/home/trick1:/bin/bash
trick2:x:1005:1005::/home/trick2:/bin/bash
trick3:x:1006:1006::/home/trick3:/bin/bash
trick4:x:1007:1007::/home/trick4:/bin/bash
trick5:x:1008:1008::/home/trick5:/bin/bash
trick6:x:1009:1009::/home/trick6:/bin/bash
trick7:x:1010:1010::/home/trick7:/bin/bash
for语句和if结合
测试主机是否在线
准备主机列表文件
[rootlocalhost ~]# cat ip.txt
192.168.10.1
192.168.20.1
[rootlocalhost ~]# cat checkhosts.sh
#!/bin/bash
HLIST$(cat ~/ip.txt)
for IP in $HLIST
doping -c 3 -i 0.2 -w 3 $IP /dev/nullif [ $? -eq 0 ]thenecho Host $IP is On-lineelseecho Host $IP is Off-linefi
done
[rootlocalhost ~]# bash checkhosts.sh
Host 192.168.10.1 is Off-line
Host 192.168.20.1 is On-line将前面的双分支if条件语句与for循环语句相结合让脚本从主机列表文件 ip.txt中自动读取IP地址用来表示主机并将其赋值给HLIST变量从而通过判断ping 命令执行后的返回值来逐个测试主机是否在线。 脚本中出现的“$命令”是一种完全类似于转义字符中反引号命令的Shell操作符效果同样是执行括号或双引号括起来的 字符串中的命令。 Shell脚本中的代码缩进格式会根据不同的语句而改变。这是由 Vim编辑器自动完成的用户无须进行额外操作