zoukankan      html  css  js  c++  java
  • 【转】linux if 判断

    UNIX Shell 里面比较字符写法:

    -eq   等于-ne    不等于-gt    大于-lt    小于-le    小于等于-ge   大于等于-z    

    空串=    两个字符相等!=    两个字符不等-n    非空串

    无论什么编程语言都离不开条件判断。SHELL也不例外。

    大体的格式如下:
    if list then
    do something here
    elif list then
    do another thing here
    else
    do something else here
    fi 

    一个例子:

    #!/bin/sh

    SYSTEM=`uname -s` # 获取操作系统类型,我本地是linux

    if [ $SYSTEM = "Linux" ] ; then # 如果是linux话输出linux字符串
    echo "Linux"
    elif [ $SYSTEM = "FreeBSD" ] ; then  
    echo "FreeBSD"
    elif [ $SYSTEM = "Solaris" ] ; then
    echo "Solaris"
    else
    echo "What?"
    fi # 判断结束,以fi结尾

    基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。说明如下:

    1 字符串判断

    str1 = str2     当两个串有相同内容、长度时为真
    str1 != str2     当串str1和str2不等时为真
    -n str1       当串的长度大于0时为真(串非空)
    -z str1       当串的长度为0时为真(空串)
    str1        当串str1为非空时为真

    2 数字的判断

    int1 -eq int2   两数相等为真
    int1 -ne int2   两数不等为真
    int1 -gt int2    int1大于int2为真
    int1 -ge int2   int1大于等于int2为真
    int1 -lt int2    int1小于int2为真
    int1 -le int2    int1小于等于int2为真

    3 文件相关的if判断条件语句

    -r file     用户可读为真
    -w file     用户可写为真
    -x file     用户可执行为真
    -f file     文件为正规文件为真
    -d file     文件为目录为真
    -c file     文件为字符特殊文件为真
    -b file     文件为块特殊文件为真
    -s file     文件大小非0时为真
    -t file     当文件描述符(默认为1)指定的设备为终端时为真

    3 复杂逻辑判断
    -a        与
    -o       或
    !       非

    语法虽然简单,但是在SHELL里使用的时候,它可以实现强大的功能或执行逻辑。

  • 相关阅读:
    Systemd 进程管理教程
    traefik的80和443端口占用进一步分析
    使用KubeOperator安装k8s集群后,节点主机yaml文件路径
    kubernetes1.20 部署 traefik2.3
    数据采集实战(二)-- 京粉商品
    机器人导航(仿真)(三)——路径规划(更新中)
    机器人导航(仿真)(二)——amcl定位
    Tkinter 做简单的窗口视窗 Python GUI
    机器人导航(仿真)(一)——SLAM建图
    (转载)VMware Workstation Ubuntu 20.04 无法连接网络问题
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/9971161.html
Copyright © 2011-2022 走看看