我的if語句不能正常工作,我不明白爲什麼。爲什麼我的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')
可解決問題。
您是否已將您的腳本從窗口機器轉移到unix?在這種情況下,'dos2unix your_script_file'可能會幫助你。 – 2012-07-23 13:40:20
它顯示什麼,你期望它顯示什麼? – beny23 2012-07-23 13:43:15
@LucM:不,沒有從Windows機器上傳輸它 – esausilva 2012-07-23 13:45:27