shell 逻辑控制语句:

     

     分支判断结构

       if

       case
     循环结构

        for

        while

        until

        

if语句结构

用法1

if CONDITON; then

   statement

   statement

   

fi

CONDITION条件的写法:

       COMMAND

      [ expression ]

      

expression表达式:

     

     数学表达式

     字符表达式

     文件目录表达式

     

数学表达式:

    [ number1 -eq number2 ]           等于

    [ number1 -ne number2 ]           不等于

    [ number1 -gt number2 ]           大于

    [ number1 -ge number2 ]           大于等于

    [ number1 -lt number2 ]           小于

    [ number1 -le number2 ]           小于等于

    

编写脚本,有用户输入用户名,判断用户不存在则创建

[root@wei shell]# vim if.sh
#!/bin/bash
#
read -p "请输入用户名: " name id $name &> /dev/null
if [ $? -ne 0 ];then
read -p "输入密码:" passwd
useradd $name
echo "$passwd" | passwd --stdin $name &> /dev/null
echo "用户$name创建完成,初始密码为:$passwd"
fi

检测语法执行状况

[root@wei shell]# bash -x if.sh 
+ read -p '请输入用户名: ' name
请输入用户名: wei
+ id wei
+ '[' 1 -ne 0 ']'
+ read -p 输入密码: passwd
输入密码:123456
+ useradd wei
+ echo 123456
+ passwd --stdin wei
+ echo 用户wei创建完成,初始密码为:123456
用户wei创建完成,初始密码为:123456

检测语法错误

[root@wei shell]# bash -n if.sh 

条件语言脚本

用法2: 单分支if

if CONDITON; then

   statement

   statement

else

   statement

   statement

fi

编写脚本,由用户输入用户名,判断用户不存在则创建,并设置用户第一次登陆系统时需要修改密码。否则提示用户已存在

#!/bin/bash
#
read -p "请输入用户名: " name if id $name &> /dev/null ;then
   echo " 用户$name已经存在"
else
   useradd $name
   read -p "输入密码:" passwd
   echo "$passwd" | passwd --stdin $name &> /dev/null
   passwd -e $name &> /dev/null   
   echo "用户$name创建完成,初始密码为:$passwd"
fi

由用户输入一个用户名,判断用户的UID和GID

判断的方式

[root@wei shell]# grep "hei" /etc/passwd

hei:x:1000:1000::/home/hei:/bin/bash

[root@wei shell]# grep "hei" /etc/passwd | awk -F: '{print $3,$4}'

1000 1000

[root@wei shell]# id -u hei

1000

[root@wei shell]# id -g hei

1000

脚本语法

#!/bin/bash
#
read -p "输入用户名:" name
user_id=$(id -u $name)
group_id=$(id -g $name) if [ $user_id -eq $group_id  ];then
   echo "Good"
else
   echo "Bad"
fi

执行结果

[root@wei shell]# bash id.sh 
输入用户名:hei
Good
[root@wei shell]# id hei
uid=1000(hei) gid=1000(hei) 组=1000(hei)
[root@wei shell]# usermod -u 1200 hei
[root@wei shell]# id hei
uid=1200(hei) gid=1000(hei) 组=1000(hei)
[root@wei shell]# bash id.sh 
输入用户名:hei
Bad

最新文章

  1. SQL笔记----在一个关系表中操作列
  2. 配置无线网络的时候会提示“Enter Password for Default Keyring to Unlock”
  3. RN组件之ToolbarAndroid
  4. BZOJ3238 [Ahoi2013]差异
  5. C#入门篇6-9:字符串操作 不值一提的函数【不看也行】
  6. 【转】提供android 5.0 AOSP源码下载
  7. 网站建设之Django搭建与配置
  8. javascript每日一练(三)——DOM一
  9. 如何使用OPENQUERY访问另一个SQL Server
  10. [ASP.NET教程] 防止表单重复提交
  11. 一次String的错误使用
  12. Python中的传参是传值还是传址?
  13. MySQL最基本的概念梳理
  14. WEB学习笔记4-前端代码基本命名规法和格式规范
  15. 使用Actuator监控
  16. Python----list&元祖常用方法总结
  17. 理解Struts2的Action中的setter方法是怎么工作的
  18. 2_C语言中的数据类型 (八)运算符
  19. PHP接入微信H5支付
  20. JS 数组方法 array数组声明 元素的添加和删除 等

热门文章

  1. 高效Redis工具类
  2. openLayers绘制静态底图
  3. NLP之词向量
  4. [探究] [Luogu4550]收集邮票的概率意义
  5. Linux性能优化实战学习笔记:第五十五讲
  6. 区间DP(超详细!!!)
  7. MATLAB 赋值命令计算结果在命令窗口显示结果
  8. Linux挖矿程序kworkerds分析
  9. swagger Unable to render this definition
  10. springmvc项目转为springboot