2

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

当我使用-eqIF 语句时,程序会显示这个UP^M: 0403-009 The specified number is not valid for this command.

有任何想法吗??


编辑。找到答案:

出于某种原因,程序在最后添加了一个返回字符。

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

4

2 回答 2

0

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

于 2012-07-23T13:43:25.440 回答
0

找到答案:

出于某种原因,程序在最后添加了一个返回字符。

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

于 2012-07-24T20:49:53.530 回答