美文网首页
bash脚本条件判断

bash脚本条件判断

作者: liyin_d64b | 来源:发表于2018-10-28 11:49 被阅读0次
    1.bash中实现条件判断

    条件测试类型包括:
    整数测试
    字符测试
    文件测试

    条件测试的表达式
    [ expression ] (要加空格)
    [[ expression ]] 
    test expression 
    
    整数比较:

    -eq:测试两个整数是否相等

    $ A=3
    $ B=6
    $ [ $A -eq $B ]
    $ [ $A -eq $B ]
    $ echo $?
    1 #1为假,0为真
    
    $ B=3
    $ [ $A -eq $B ]
    $ echo $?
    0
    

    -ne:测试两个整数是否不等,不等为0,等为1
    -gt(greater than):一个大于另一个
    -lt(lesser than): 一个小于另一个
    -ge: 大于或等于
    -le:小于或等于

    逻辑关系:

    and: && 第一个条件为假时,后面都不执行了,称为短路。 若第一个为真,后面必须判断
    or: || 第一个条件为真时,后面就不执行了 若第一个为假,后面则必须判断

    若用户存在则hello world
    $ id jmzeng &> /dev/null && echo "Hello world"
    Hello world
    $ id user1 &> /dev/null && echo "Hello"
    若用户不存在则添加用户  
    $ ! id user7 && useradd user7
    id: ‘user7’: no such user
    useradd: Permission denied.
    useradd: cannot lock /etc/passwd; try again later.
    用或命令(前面为真后面则不执行)
    $ id user7 || useradd user7
    id: ‘user7’: no such user
    useradd: Permission denied.
    useradd: cannot lock /etc/passwd; try again later.
    
    脚本判断
    #!/bin/bash
    lines=`wc -l /etc/passwd` #命令结果保存在lines,` `反引号为引用结果
    
    finallines=`echo $lines | cut -d' ' -f1`
    echo "it has $finallines lines" 
    
    [ $finallines -gt 100 ] && echo "is a big data" || echo "is a small data"
    
    $ ./test.sh 
    it has 85 lines
    is a small data
    
    练习题

    如果用户不存在,添加并保存密码,否则显示存在

    $ ! id user1 && useradd user1 && echo "user1" | passwd --stdin user1  || echo "user1 exists"
    id: ‘user1’: no such user
    useradd: Permission denied.
    useradd: cannot lock /etc/passwd; try again later.
    
    $ ! id user1 &> /dev/null  && useradd user1 && echo "user1" | passwd --stdin user1  || echo "user1 exists"
    useradd: Permission denied.
    useradd: cannot lock /etc/passwd; try again later.
    # &> /dev/null 不要这些信息
    
    友情阅读推荐:

    生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!

    B站链接:https://m.bilibili.com/space/338686099

    YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists

    生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA

    学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

    相关文章

      网友评论

          本文标题:bash脚本条件判断

          本文链接:https://www.haomeiwen.com/subject/jtdptqtx.html