• 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用来检查脚本的执行情况。

  • 相关阅读:
    LeetCode Linked List Cyle
    【小程序】使用uni-app搭建小程序环境---滑块组件
    【小程序】使用uni-app搭建小程序环境---图片懒加载
    【小程序】使用uni-app搭建小程序环境---列表上拉加载更多
    【小程序】使用uni-app搭建小程序环境---页面跳转
    【小程序】使用uni-app搭建小程序环境--轮播图
    【小程序】使用uni-app搭建小程序环境---路由配置及页面跳转获取参数
    【小程序】使用uni-app搭建小程序环境---工程结构和页面管理
    【小程序】使用uni-app搭建小程序环境---尺寸单位
    【小程序】使用uni-app搭建小程序环境---css变化
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/10661853.html
Copyright © 2020-2023  润新知