zoukankan      html  css  js  c++  java
  • 求助:关于shell数值比较的错误提示

    今天写了个脚本,过不了错误这一关,求大神路过瞟一眼。

    1 #!/bin/bash
    2 #disk use
    3 disk_use() {
    4 DISK_LOG=/tmp/disk_use.tmp
    5 DISK_TOTAL=`fdisk -l |awk '/^Disk.*bytes/ &&//dev/{print $2" ";printf "%d",$3;print "GB"}'`
    6 USER_RATE=`df -h |awk '/^/dev/{print int($5)}'`
    7 }
    8 disk_use
    9 for i in "$USER_RATE"
    10 do
    11 if [ $i -gt 90 ] &>/dev/null;then
    12 PART=`df -h |awk '{if(int($5)=='''$i'''){print $6}}'`
    13 echo "$PART = $i" >> $DISK_LOG
    14 fi
    15 done
    16 echo "-------------------------------------"
    17 echo -e "Disk total: ${DISK_TOTAL}"
    18 if [ -f $DISK_LOG ];then
    19 echo "------------------------------"
    20 cat $DISK_LOG
    21 echo "------------------------------"
    22 rm -f $DISK_LOG
    23 else
    24 echo "------------------------------"
    25 echo "disk use rate no than 90% of the partition."
    26 echo "------------------------------"
    27 fi

    不加&>/dev/null就一直提示错误,好像表达式也没问题?

    错误提示:(变量和90加不加双引号都这个)

    [root@localhost ~]# ./disk_use.sh

    ./disk_use.sh: line 11: ((: >= 90 : syntax error: operand expected (error token is ">= 90 ")

    。。。。。。。。。。。。

    改用 if [ "$i" -gt 90 ]

    提示:

    [root@localhost ~]# ./disk_use.sh

    ./disk_use.sh: line 11: [: : integer expression expected

    不用双引号:

    [root@localhost ~]# ./disk_use.sh

    ./disk_use.sh: line 11: [: -gt: unary operator expected

  • 相关阅读:
    map映射的用法
    相似的字串(hash+二分)
    进制 /字符串 hash
    CF#632 C.Eugene and an array
    2020牛客寒假算法基础集训营6 H-云
    Educational Codeforces Round 80 (Div. 2)
    Codeforces Round #601 (Div. 2)补题
    luogu-单调队列/单调栈专题
    Comet OJ
    Comet OJ
  • 原文地址:https://www.cnblogs.com/lov1394/p/11390698.html
Copyright © 2011-2022 走看看