zoukankan      html  css  js  c++  java
  • shell学习(10)- if的使用

    在写Linux脚本的时候,经常会用到判断,这篇主要讲if的具体使用。

    if用法:

    if [ ] ;then

        command

    elif [ ] ;then

      command

    else 

      command

    fi

    Shell 里面比较字符写法:

          -eq   等于

      -ne    不等于

      -gt    大于

      -lt    小于

      -le    小于等于

      -ge   大于等于

      -z    空串

      =    两个字符相等

      !=    两个字符不等

      -n    非空串

    判断参数见下表:

    类型 运算符 描述 示例
    文件比较运算符 -e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]
    -d filename 如果 filename 为目录,则为真 [ -d /tmp/mydir ]
    -f filename 如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]
    -L filename 如果 filename 为符号链接,则为真  [ -L /usr/bin/grep ]
    -r filename   如果 filename 可读,则为真   [ -r /var/log/syslog ]
    -w filename  如果 filename 可写,则为真   [ -w /var/mytmp.txt ]
    -x filename  如果 filename 可执行,则为真      [ -L /usr/bin/grep ]
    字符串比较运算符 -z string  如果 string 长度为零,则为真 [ -z $myvar ]
    -n string   如果 string 长度非零,则为真 [ -n $myvar ]
    string1 = string2 如果 string1 与 string2 相同,则为真 [ $myvar = one two three ]
    string1 != string2 如果 string1 与 string2 不同,则为真 [ $myvar != one two three ]
    算术比较运算符 num1 -eq num2 等于 [ 3 -eq $mynum ]
    num1 -ne num2      不等于 [ 3 -ne $mynum ]
    num1 -lt num2  小于 [ 3 -lt $mynum ]
    num1 -le num2 小于或等于 [ 3 -le $mynum ]
    num1 -gt num2 大于  [ 3 -gt $mynum ]
    num1 -ge num2 大于或等于   [ 3 -ge $mynum ]

     脚本栗子1:

    #!/bin/bash
    if [ -d /home/kumufengchun/trash ];then
    echo 'ok'
    else
    echo 'no'
    fi
    
    if [ -e /home/kunufengchun/test.sh ] && [ -f /home/kumufengchun/test.sh ];then
    echo 'exist'
    else
    echo 'noexist'
    fi;

    注意:在判断时,if后边的中括号前后一定要有空格,否则会报错,应写成 if [ -e /home/kunufengchun/test.sh ],而不是 if [-e /home/kunufengchun/test.sh]

    脚本栗子2:

       #!/bin/bash
    
      # This script prints a message about your weight if you give it your
    
      # weight in kilos and hight in centimeters.
    
      if [ ! $# == 2 ]; then
    
      echo "Usage: $0 weight_in_kilos length_in_centimeters"
    
      exit
    
      fi
    
      weight="$1"
    
      height="$2"
    
      idealweight=[height - 110]
    
      if [ weight−leidealweight ] ; then
    
      echo "You should eat a bit more fat."
    
      else
    
      echo "You should eat a bit more fruit."
    
      fi
    
      # weight.sh 70 150
    
      You should eat a bit more fruit.
    
      # weight.sh 70 150 33
    
      Usage: ./weight.sh weight_in_kilos length_in_centimeters

         位置参数 1,2,..., N,#代表了命令行的参数数量, $0代表了脚本的名字,

      第一个参数代表1第二个参数代表2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。

      # bash -x tijian.sh 60 170

      + weight=60

      + height=170

      + idealweight=60

      + '[' 60 -le 60 ']'

      + echo 'You should eat a bit more fat.'

      You should eat a bit more fat.

      其中-x用来检查脚本的执行情况。

  • 相关阅读:
    Centos7下PyCharm2019安装
    企业的web项目类型、企业项目开发流程、立项申请阶段、需求分析、导航菜单、轮播图、退出登录、登录注册、课程列表、创建虚拟环境、依赖包安装、创建项目、调整目录、创建代码版本git、日志配置、异常处理、创建数据库、
    增量式爬取阳光热线网
    分布式爬取阳光热线网
    什么是接口测试,为什么做接口测试
    什么是接口、接口优势、类型(详解)
    187. Repeated DNA Sequences
    274. H-Index
    299. Bulls and Cows
    36. Valid Sudoku
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/10661853.html
Copyright © 2011-2022 走看看