linux 系统中shell编程之for条件语句的实际例子

结合前一篇文章的的理论知识,动手写for条件语句案例

理论知识
在这里插入图片描述
案例要求:从列表文件读取用户名,逐个创建用户,并将密码设置
新建用户文件 users.txt

[root@oracle tmp]# vi users.txt 
andy
barry
xiehao
xh

创建案例脚本,其实很简单,主要将一些细节,在备注里面进行了解释。

[root@oracle tmp]# vi user.sh 
#!/bin/bash
read -p "请输入密码:" PASSWD

#for 一个值 in ``的写法需要注意,第一次出现的变量,没有$
#后面的范围cat /tmp/users.txt 外部用的不是单引号,而是反单引号
#因为在bash解释器中:\反斜杠,代表转义后面单个字符
#单引号''是转义所有字符,双引号""代表变量依然生效
#只有反引号``才代表执行命令语句,此处容易出错,初学需要特别铭记

for USERNAME in `cat /tmp/users.txt`

do

#这里运用了一个命令 id 用户名 的形式,如果存在该用户,则会正常执行该命令
#如果不存在该用户,则不能执行成功该命令。利用$?变量是否为0 便可以判断用户是否存在
#&>> 表示不管执行成功与否,正确和错误的信息都会追加到123.txt文本中

id $USERNAME &>>/tmp/123.txt
if [ $? -eq 0 ]
then
echo "此用户$USERNAME已存在,不需要设置密码"
else
useradd $USERNAME &>> /tmp/1234.txt
#echo “新密码”|passwd --stdin 用户名
#--stdin这个选项用于从标准输入管道读入新的密码
#使用 echo 方式来确定用户密码
echo "$PASSWD" | passwd --stdin $USERNAME &>> /tmp/12345.txt
 #再进行if判断
 if [ $? -eq 0 ]
 then
 echo "密码创建成功"
 else
 echo "密码创建失败"
 fi
fi
done

执行结果:

[root@oracle tmp]# sh user.sh 
请输入密码:123456
密码创建成功
密码创建成功
密码创建成功
此用户xh已存在,不需要设置密码

为了验证正确性,其实这些用户在第一次执行该脚本的时候,已经被创建成功了
在执行一遍,看一下运行结果:

[root@oracle tmp]# sh user.sh 
请输入密码:123456
此用户andy已存在,不需要设置密码
此用户barry已存在,不需要设置密码
此用户xiehao已存在,不需要设置密码
此用户xh已存在,不需要设置密码

说明脚本没问题

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值