命令:who (查看登录的用户用户)
命令:who | wc -l(查看有多少个用户)
结果:1(数字代表有几个用户)
脚本实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash #txt.sh if [ `who | wc -l` -ge 1 ] then echo "当前登录用户大于一人" else echo "当前登录用户小于一人" fi #注意条件中的反引号`` #当然也可以将上面的代码写成下面这样 user=`who | wc -l` if [ $user -ge 1 ] then echo "当前登录用户大于一人" else echo "当前登录用户小于一人" fi |
字符串测试:
举例:测试输入用户的账号和密码是否为admin和123如果是,则登录成功,请看如下代码实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash #txt.sh read -p "请输入用户名:" name read -p "请输入密码:" pass if [ $name = 'admin' ] && [ $pass = '123' ] then echo '登录成功' else echo "登录失败" fi |
注:这里$name = 'admin'不能写成 $name -eq 'admin',原因是:-eq虽然在上一章所说,也代表等于的意思,但是-eq参数只能用于整型数据的表达,不能用于字符串测试,同理-eq连浮点型的数据也不支持
admin这个字符不是整型,所以只能用=符号来连接,不能用-eq来做判断
此外字符串不等于判断使用 !=
参数:-z符代表判断字符串为空
实例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash #txt.sh read -p "请输入用户名:" name read -p "请输入密码:" pass if [ $name -z ] && [ $pass = '123' ] then echo '登录成功' else echo "登录失败" fi |
注:上文代码中的
if [ $name -z ] && [ $pass = '123' ]
不能写成
if [ $name = '' ] && [ $pass = '123' ]
一定要用-z参数来判断是否为空字符串
© 著作权归作者所有
文章评论(0)