shell脚本编程-分支结构if分支语句,多分支

1.5 shell脚本编程-分支结构if分支语句,多分支

useradd //创建一一个用户

//用户的信息会写到/etc/passwd
//同时会生成以此用户名命名的家且录 在/home创建

从键盘读取用户输入的密码信息,验证输入的密码是否为123456,
如果输入正确,显示密码正确,如果错误,显示密码错误。

ssh IP地址

vim passwd.sh

 #!/bin/bash
 read -p "请输入密码:" passwd
 if test $passwd = "123456" //字符串建议用双引号引起来
 if [ $passwd = "123456" ]  //用中括号写测试语句
      then
      echo "passwd is OK"
  fi

解决输入的密码信息和已有的信息做匹配的信息:
使用test测试:
文件属性测试
字符串测试
算数测试
命令格式:
test 测试语句
[ 测试语句 ] //括号两边要有空格

文件属性测试
  -e   测试文件存在为真
  -f   测试文件存在为真且是一个常规文件
  -d   测试文件仔在为真且是一个目录
  -c   测试文件存在且特殊字符文件为真
  -b   测试文件存在且特殊块为真
  -g   测试文件存在为真且是一个常规文件
  -u   测试文件存在且设置了ugid位为真

  -r   测试文件存在且可读为真
  -w   测试文件存在且可写为真
  -x   测试文件存在且可执行为真

  -s   测试文件存在且不为空为真

逻辑与或逻辑或:
&& 逻辑与
|| 逻辑或

true  为真
false 为假

true && false --> false
当第一个添加为真时,返回第二个条件 false
true && true --> true
false && false --> false
当一个条件为假时,返回第一个条件
//两者都为真结果为真,
//有一个为假,结果为假
true || false --> true
true || true --> true

false || false --> false
//两者都为假结果为假,
//有一个为真,结果为假
&& 遇假停并返回, 没有返回最后一个 || 遇真停,并返回,没有最后一个

test -e /root/a. txt && echo “a. txt is 0K”

a. txt is 0K
#test -e /root/b. txt && echo “b. txt is 0K”
#test -e /root/b. txt && echo “b. txt is 0K”||echo “b. txt is not 0K”
b. txt is not 0K

字符串测试:
-z 为空为真
-n 不为空为真
= 相同为真
!= 不相同为真
< 字典排名在前为真

字典排名在后为真

hi > nihao 真
if test -Z $username
then
echo"请输入密码:"
else
执行密码不为空的语句
fi

if test -n $username
then
执行密码不为空的语句
else
echo"请输入密码:"
fi

算术测试的操作:
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于

单分支
if 测试的语句或命令
then
执行语句
fi

双分支:
if 测试的语句或命令
then
执行语句1
else
执行语句2
fi

多分支:
if 测试的语句或命令
then
执行语句1
elif
then
执行语句2
elif
then
执行语句3
elif
then
执行语句4
else
执行语句5
fi

脚本实例:
判断用户输入的数值是正数还是负数:
知识点;
算数测试操作
if test -
then
执行语句1
elif

作业
判断输入的成绩在任么档位;
0-59 不及格
60-79 良
80-89 优
90-99 优+
100 满分

vim test.sh

#!/bin/bash
read -p “Please enter a number”: number
if [ $number -eq 100 ] ;then
echo “The grade is A”
elif [ $number -ge 90 -a $number -le 99 ] ;then
echo “The grade is B”
elif [ $number -ge 80 -a $number -le 89 ] ;then
echo “The grade is C”
elif [ $number -ge 70 -a $number -le 79 ] ;then
echo “The grade is D”
elif [ $number -le 59 -a $number -ge 0 ] ;then
echo “The grade is Z”
elif [ $number -ge 60 -a $number -le 69 ] ; then
echo “The grade is E”
else
echo “you enter nothing,please enter a number!”
fi

发布了138 篇原创文章 · 获赞 149 · 访问量 8451

猜你喜欢

转载自blog.csdn.net/weixin_44799645/article/details/104688647