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

  • 相关阅读:
    apache2三种模式及切换到event模式
    MySQL添加用户、创建数据库、分配权限
    ExcelHelper导出
    C#中将错误写进日志文件
    k3 cloud金蝶云参数设置云之家集成,提示无法推送企业消息
    k3 cloud中用视图类型来展示数据
    k3 cloud python 插件实现点击对应的单据编号打开单据
    k3 cloud单据转换的表
    sql server查询某个表对应的触发器
    QPainter::begin: Paint device returned engine == 0, type: 3
  • 原文地址:https://www.cnblogs.com/kumufengchun/p/10661853.html
Copyright © 2011-2022 走看看