zoukankan      html  css  js  c++  java
  • shell脚本执行报错[: 0: unary operator expected

    在执行shell脚本,if判断语句报错

    #!/bin/bash
    
    if [ 0 == $testNum ]
    then
        echo "Check Result:0"
    fi
    

      

    testNum使用时没有定义,无赋值是空(原本是有定义的,只是笔误写错类似tsetNum了),执行转换后实际为

    if [ 0 ==  ]

    不相等,且少[符号错误;规避如下

    #!/bin/bash
    
    if [[ 0 == $testNum ]]
    then
        echo "Check Result:0"
    fi
    

     使用“[[ ]]”进行判断;或者添加一个字符

    #!/bin/bash
    
    if [ "0"x == "$testNumx"x ]
    then
        echo "Check Result:0"
    fi
    

      

    其实,针对我所犯的错误,当然还是使用“[]”普通判断为好了,可以检查错误;但是这种实现多是用来判断查询的值或者其他条件赋予的值是否满足条件,存在为空是正常的场景,所以要完善自己代码。

    详细含义待补充  

  • 相关阅读:
    省队集训Ⅱ-Day5
    省队集训Ⅱ-Day4
    省队集训Ⅱ-Day3
    省队集训Ⅱ-Day2
    省队集训Ⅱ-Day1
    并查集 Pro
    树上带修: 莫队Ⅳ
    树上骗分: 莫队Ⅲ
    带修骗分: 莫队Ⅱ
    骗分带师: 莫队Ⅰ
  • 原文地址:https://www.cnblogs.com/xinhua219/p/9285899.html
Copyright © 2011-2022 走看看