请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

1回答

同学,您好,我今天看了一下这个问题,发现在[[ ]]中使用>或<进行比较时,存在问题,今天重新翻看了一下double_square_bracket.sh脚本内容,发现是下面这样的https://img1.sycdn.imooc.com//szimg/5e0dfca60975c1ec10480826.jpg

我尝试了你的内容,的确无法得到预期结果;我后来专门翻了资料, 发现在双方括号中如果使用>和<进行数值比较是由问题的,因此会把数字当成字符串来做比较,会首先比较首个数字的ASCII码,然后对比大小,如果首个数字相同,在继续比较后面第二个数字,非常感谢同学提出的问题,后面我会重录视频纠正这个问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉1056356323 #1
    酷老师,我知道了!
    回复 有任何疑惑可以回复我~ 2020-01-03 11:47:24
  • 酷老师,是不是我这样写,才是对的?双方括号也是一定要用-gt格式的写法。
    
    [root@node1 shell_script]# cat double_square_bracket.sh
    #!/bin/bash
    #
    
    if [ $1 -gt $2 ] && [ $3 -gt $2 ];then
        echo "$1 > $2 && $3 > $2"
    else 
        echo "other"
    fi
    
    echo "==========================="
    
    a=$1
    b=$2
    c=$3
    if [[ $a -gt $b && $c -gt $b ]];then
        echo "$1 > $2 && $3 > $2"
    else
        echo "other"
    fi
    [root@node1 shell_script]# sh double_square_bracket.sh 12 5 12
    12 > 5 && 12 > 5
    ===========================
    12 > 5 && 12 > 5
    回复 有任何疑惑可以回复我~ 2021-01-03 00:40:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信