1.给定一个用户,如果其UID为0,显示为管理员,否则为普通用户

 #!/bin/bash
read -p "input your name :" -t 30 username

#first way
userid=`grep "^$username:" /etc/passwd | cut -d: -f3`
echo $userid
[ $userid -eq 0 ] && echo "you are root" || echo "you are not root"

#second way
userid2=`id -u "$username"`
[ $userid2 -eq 0 ] && echo "you are root..." || echo "you are not root..."


2.给定一个用户,如果存在则显示,否则添加这个用户,并同时设置密码为用户名

#!/bin/bash

read -p "input username:" -t 30 username
if id $username &>/dev/null ; then
   echo "$username is exits"
else
   useradd $username
   echo "$username" | passwd --stdin $username
   echo "$username is added success!"
fi



3. 思考与总结


关于LINUX BASH的变量类型

A.环境变量

对于命令行启动的SHELL进程有效。


B.本地变量

对本SHELL进程有效。需要注意的是,父SHELL和子SHELL是两个不同的SHELL进程,不会共享本地变量的。


C.位置变量

形式表现为$1,$2...


D.特殊变量

比如,$?

$?对于我们非常有用,我们执行了一个命令,其实,有一个命令的执行结果,还有一个命令的执行状态码

(可以理解为HTTP协议中的HTTP RESPONSE STATUS CODE)

那么$?将有助于我们判断命令是否正确执行。0 代表正确,1-255为不正确。


关于逻辑运算中的短路现象

A && B

实际上,如果A不正确,那么B不会执行


A || B

如果A不正确,那么B才会得到执行


根据上面的理论,我们可以得到:

A && B || C

如果A正确,那么执行B

如果A不正确,那么执行C