一、添加用户
1.
#!/bin/bash
#井号是注释,上面第一行专业术语叫魔数,可以看做一个shell声明#
#$1是位置变量,是接受执行shell传进来的参数的
useradd $1
#passwd在bash中执行时会在中间停止,让用户进行输入密码
#为了防止shell停止使用参数--stdin,让passwd介绍标准输入,echo是标准输出。
#&> 是全部重定向(即正确错误信息都重定向) /dev/null 为数据黑洞
echo $1 | passwd --stdin $1 &> /dev/null
echo "add user $1 success!"
2.上面的代码不够严谨,使用逻辑判断来完善
#!/bin/bash
[ ! $# -eq 1 ] && echo "args error!" && exit 3
id $1 &>/dev/null && echo "user $1 exit!" && exit 1
id $1 &>/dev/null || useradd $1
echo $1 | passwd --stdin $1 &> /dev/null && echo "add user $1 success!"
[ expression ]注意两头有两个空格。[ ]的形式多用在比较的时候!
-eq是等于的意思
逻辑判断命令的状态时使用种&& || 的方式很常见。这两种命令最好不要混用。
&&:若前一个执行成功就继续执行第二个,若前一个失败就不在执行后面的。
||:若前一个成功就不再执行后面的,若前一个失败就再执行后面的
id $1 :查看名为$1的用户
exit 1 :退出shell,不一定为1,非零都表示退出shell
二、显示系统一共多少用户
1.
#!/bin/bash
count=`wc -l /etc/passwd | awk '{print $1}'`
echo totol user: $count
注意:变量赋值时等于号前后别放空格
awk{print $1} 中print是打印指定内容,此处的$1指的是每行的第一个字符
反引号:作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。