-eq //等于
-ne //不等于
-gt //大于
-lt //小于
ge //大于等于
le //小于等于
实验中遇到的问题:
1.NAME=user1 中间不能有空格
2.[ xxx ] xxx前面和后面要有空格
任务1:使用case语句编写shell程序
1、由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符, 并输出相应的提示信息。
代码:
#!/bin/bash
read -p "press some key ,then press return :" KEY
case $KEY in
[a-z]|[A-Z])
echo "It's a letter."
;;
[0-9])
echo "It's a digit."
;;
*)
echo "It's function keys、Spacebar or other ksys."
esac
2、判断在执行程序时所输入的参数,符合相应条件,输出相对应的信息
#!/bin/bash
case $1 instart | begin)echo "start something";;stop | end)echo "stop something";;*)echo "Ignorant";;
esac3、判断当前系统属于哪种操作系统,并执行相应分支的输出语句
#!/bin/bashSYSTEM=`uname -s` case $SYSTEM in Linux) echo "My system is Linux" echo "Do Linux stuff here..." ;; FreeBSD) echo "My system is FreeBSD" echo "Do FreeBSD stuff here..." ;; *) echo "Unknown system : $SYSTEM" echo "I don't what to do..." ;; esac
结果:
1和2
任务2:使用if语句编写shell脚本
1、使用if判断语句添加用户
NAME=user1
if id $NAME &> /dev/null ; thenecho "$NAME is exist."elseuseradd $NAMEecho "$NAME" | passwd --stdin $NAME &> /dev/nullecho "$NAME is add sucessful"fi
2、如果用户已存在,显示已存在,则删除此用户并删除此用户的家目录,并提示删除成功;如果不存在,提示用户不存在。
#!/bin/bash
NAME=user1if ! id $NAME &> /dev/null ; thenecho "The $NAME is not exist."elseuserdel -r $NAME &> /dev/nullecho "The $NAME is del successful."fi
3、给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户;
#!/bin/bash
read -p "please input username:" NAME
NAMEID=`id -u $NAME`
if [ $NAMEID -eq 0 ]; thenecho "The $NAME is root."
elseecho "The $NAME is common."
fi
4、输入分数,60分以下显示失败,60-80分显示good,81-100分显示nice。
#!/bin/bash
read -p "please input your score:" score
if [ "$score" -ge 0 -a "$score" -le 60 ];thenecho "fail"
elif [ "$score" -gt 60 -a "$score" -le 80 ];thenecho "GOOD! "
elif [ "$score" -gt 80 -a "$score" -le 100 ];thenecho "Nice"
elseecho "wrong score"
fi
结果:
1.创建用户:
这样是创建了一个用户名为空的用户:
这样是创建了一个用户名为zhengjunsong的用户:
2.删除用户
把刚才的用户名为空的用户删掉:
3.给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户;
4.输入分数,60分以下显示失败,60-80分显示good,81-100分显示nice。