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

そして-eq、IFステートメントに使用すると、プログラムはこれを表示しますUP^M: 0403-009 The specified number is not valid for this command.

何か案は??


編集。答えを見つけた:

何らかの理由で、プログラムは最後に戻り文字を追加しています。

これを追加するinst=$(echo $inst | tr -d '\r')と、列の値を取得した直後に問題が解決します。

4

2 に答える 2

0

ソースファイルのdos2unixも役立つかもしれません、someFile.txt

于 2012-07-23T13:43:25.440 に答える
0

答えを見つけた:

何らかの理由で、プログラムは最後に戻り文字を追加しています。

これを追加するinst=$(echo $inst | tr -d '\r')と、列の値を取得した直後に問題が解決します。

于 2012-07-24T20:49:53.530 に答える