为什么我的IF声明不起作用?

时间:2012-07-23 13:37:59

标签: shell unix scripting if-statement ksh

我的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.

任何想法??


EDIT。发现答案:

由于某种原因,程序最后会添加一个返回字符。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

找到答案:

由于某种原因,程序最后会添加一个返回字符。

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