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

Linux shell if条件判断1的更多相关文章

  1. Linux shell if条件判断2

    前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构     if , case   下面两个结构语法,已经在前面有过示例. 结构1: ...

  2. Linux Shell编程 条件判断语法

    if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...

  3. Linux shell case条件判断及位置变量

    case语句使用于需要进行多重分支的应用情况 case分支判断结构 语法: case 变量名称 in      value1)          statement          statemen ...

  4. shell中条件判断if中的-z到-d的意思

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...

  5. shell中条件判断if中的-z到-d

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...

  6. 我们一起来学Shell - shell的条件判断

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

  7. shell中括号的特殊用法 linux if多条件判断

    一.   bash [  ] 单双括号 基本要素: Ø  [ ] 两个符号左右都要有空格分隔 Ø  内部操作符与操作变量之间要有空格:如  [  “a”  =  “b”  ] Ø  字符串比较中,&g ...

  8. (转)shell中括号的特殊用法 linux if多条件判断

    一.   bash [  ] 单双括号 基本要素: Ø  [ ] 两个符号左右都要有空格分隔 Ø  内部操作符与操作变量之间要有空格:如  [  “a”  =  “b”  ] Ø  字符串比较中,&g ...

  9. Linux学习 -- Shell编程 -- 条件判断

    按照文件类型进行判断 两种格式 test -e /root/install.log [ -e /root/install.log ]   注意空格  适合用于脚本中 echo $?可以看到结果 [ - ...

随机推荐

  1. 前端css命名规范----BEM

    一.什么是BEM BEM就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种前端命名方法论.这种巧妙的命名方法可以使css类对其他开发者来说更加透明 ...

  2. nginx配置代理时参数说明

  3. 【CF1097F】Alex and a TV Show

    [CF1097F]Alex and a TV Show 题面 洛谷 题解 我们对于某个集合中的每个\(i\),令\(f(i)\)表示\(i\)作为约数出现次数的奇偶性. 因为只要因为奇偶性只有\(0, ...

  4. vue 图片放大镜效果

    插件名称:vue-photo-zoom-pro https://github.com/Mater1996/vue-photo-zoom-pro 效果图  使用: <template> &l ...

  5. 2019.11.12&13题解

    写在前面: 虽然拿到了rk1,但是T3被卡常TLE90分,(考后再交就A了!?),lemon80,又丢失了一次良好的AK机会, 掐头去尾距离联赛仅剩2天,最近中午一直睡不好,可能是有些紧张, 希望自己 ...

  6. WebAPI 使用控制台启动

    using System; using System.Web.Http; using System.Web.Http.SelfHost; namespace UAC_OAuth2Center { pu ...

  7. SQLAIchemy 学习(一)Session 相关

    0. 前言 最近是使用 SQLAlchemy 框架作为一个 ORM 框架,现对其做简单整理 1. 创建 Session 说到数据库,就离不开 Session.Session 的主要目的是建立与数据库的 ...

  8. 【07月16日】A股滚动市净率PB历史新低排名

    2010年01月01日 到 2019年07月16日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年07月16日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...

  9. (一)golang--初识go语言

    学习来源:https://www.bilibili.com/video/av35928275/?p=1  尚硅谷的(我学spring.springmvc和mybatis就是他们的课) 使用1.9.2的 ...

  10. java -jar 时指定内存大小

    java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar 说明: 1.堆内存:最小1024M,最大153 ...