代码之家  ›  专栏  ›  技术社区  ›  esausilva

为什么我的IF语句无效?

  •  2
  • esausilva  · 技术社区  · 12 年前

    我的if语句没有发挥应有的作用,我不明白为什么。

    这就是我所拥有的

    for LINE in $(cat someFile.txt)
    do
    inst=$(echo $LINE | awk -F, '{print $4}')
    echo $inst  # To verify is displaying correctly
    if [ $inst == "UP" ]
    then
        echo "Program skips this when $inst is UP"
    elif [ $inst == "DN" ]
    then
        echo "Program skips this when $inst is DN"
    fi
    done
    

    当我使用 -eq 对于IF语句,程序显示 UP^M: 0403-009 The specified number is not valid for this command.

    有什么想法吗??


    编辑。找到了答案:

    由于某种原因,程序在末尾添加了一个返回字符。

    添加此: inst=$(echo $inst | tr -d '\r') 获取列值后立即解决问题。

    2 回复  |  直到 12 年前
        1
  •  0
  •   Choker    12 年前

    源文件上的dos2unix可能也有帮助,someFile.txt

        2
  •  0
  •   esausilva    12 年前

    找到了答案:

    由于某种原因,程序在末尾添加了一个返回字符。

    添加此: inst=$(echo $inst | tr -d '\r') 获取列值后立即解决问题。