设为首页 收藏本站
查看: 1361|回复: 0

Shell脚本编程---条件判断if

[复制链接]

尚未签到

发表于 2018-8-29 13:03:50 | 显示全部楼层 |阅读模式
  SHELL脚本编程---判断
  1、条件判断
  条件判断在bash分为整数判断,字符判断和文件判断。
  1-1条件判断的表达式: ① [ expression ] (注意单词词头和词尾都需要空格)
  ② ` expression `(注意同上)
  ③ test expression
  1-2 整数测试
  ① -eq  测试两个数是否相等,相等为真,不等为假
  ② -ne  测试两个数是否不等, 反之。
  ③ -gt (大于),-lt (小于),-ge(大于或等于),-le(小于或等于)
  1-3 文件类的测试
  ① -e (exist) FILE  测试该文件是否存在
  ② -f  FILE  测试该文件是否为普通文件
  ③ -d  FILE  测试该文件是否为目录文件
  ④ -r  FILE  测试该文件对执行当前脚本文件的用户来说是否有读权限
  ⑤ -w  FILE  测试该文件对执行当前脚本文件的用户来说是否有写权限
  ⑥ -x  FILE  测试该文件对执行当前脚本文件的用户来说是否有执行权限
  2、条件判断,控制结构
  if  判断条件;then
  statement1
  statement2
  statement3
  ………
  fi   单分支if语句。
  双分支的if语句
  if 判断条件;then
  statement1
  else
  statement2
  fi
  命令执行状态返回值:0为真,其他数值全为假。
  ==================以下全部都为练习例题===============
  逻辑判断题1
  1、如果用户不存在,则添加用户
id USERNAME &> /dev/null || useradd USERNAME  逻辑判断题2、
  1、如果用户存在,就显示用户已经存在,否则就添加此用户。
id newuser && echo “newuser exists” || useradd newuser  1、如果用户不存在,就要添加用户,否则就显示用户已存在
id newuser &> /dev/null && echo “newuser exist” || useradd newuser  如果用户不存在,添加还给密码,否则,显示用户已经存在
id newuser2 && echo “newuser2 exists” || useradd newuser2 && echo “newuser2” | passwd --stdin newuser2  添加三个用户,user1-user3。需要提前判断用户是否存在,并显示添加了几个用户。最后显示当前系统上用户的数量
#!/bin/bash  read -p "Plz input your username :" User
  id $User &> /dev/null
  RETVAL=$?
  if [ $RETVAL -eq 0 ];then
  for i in {1..3};do
  useradd $User$i && echo "$User$i" | passwd --  stdin $User$i &> /dev/null
  done
  else
  echo "$User exists"
  fi
  练习题二:
  写一个脚本,使用一个变量保存用户名,判断其是否存在先,而且如果其UID为0,就说它是管理员,如果不为0就说它们是普通用户。
DSC0000.png

  写一个简单脚本,完成如下的任务、
  使用一个变量保存用户名,删除变量中的用户,以及它的家目录,显示“删除成功”信息。
DSC0001.png

  练习题三:
  判断当前系统上是否有用户默认的shell为bash,如果有,就显示有多少个这样的用户,否则,就显示没有。
DSC0002.png

  ========(注意:这里面有个叫RETVAL=$? 这个写在那个命令语句后面,执行的就是哪个后面的命令执行状态返回结果。)=========
  练习题四:
  判断当前系统上是否有用户默认的shell为bash,如果有,就显示其中的一个用户名,否则,就显示没有。
DSC0003.png

  练习四:写脚本,给定一个文件,如/etc/inittab,判断文件中是否有空白的行,如果有,显示空白行数,否则,显示没有空白行。
DSC0004.png

  练习四改进:写脚本,让用户随便输入一个文件,判断该文件是否有效,如果有效,则显示其空白的行,否则,显示没有空白行。
DSC0005.png

  练习五:随便给一个用户,判断它的UID和GID是否一致,如果一致,显示用户为”good guy“
  否则,显示为bad guy
DSC0006.png

  练习六:判定命令历史中历史命令的总条目是否大于等于1000,如果大于等于1000,则显示“need clean up”,否则显示“ok!”
DSC0007.png 或者是 DSC0008.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-558196-1-1.html 上篇帖子: 汇总下几个IP计算/转换的shell小脚本 下篇帖子: php shell超强免杀、减少体积工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表