我已經嘗試了if-elif-else和case easc。我不知道爲什麼它不接受條件應該是真的。shell編程變量不會進入if或case語句
cat temp | (while read line
do
heading=${line%% *}
echo "'$heading'"
case $heading in
'Cell')
echo 'hit cell'
echo $line | awk "{printf '%-20s %15s', $5, `./get.sh $5`}";;
'Frequency')
echo 'hit frequency'
echo $line | awk "{gsub('\)', '', $5);printf '%6s', $5 }";;
'blah')
echo 'hit blah'
echo $line | awk "{gsub('\"', '', $0);printf '%40s', $1 }";;
*) echo 'fail';;
esac
done)
我不明白爲什麼它不通過案例測試(或if-elif版本)。從回聲標題行我得到正是我期望: 「細胞」 「頻率」 「嗒嗒」
這些發生在一個週期,沒有空格可能導致測試失敗。
但它仍然打印失敗失敗失敗失敗。
有沒有人有任何想法可能會導致這種奇怪的行爲?我已經檢查了數值,找不到任何理由。幫助將不勝感激。
是否所有的調用'awk'無關的問題?你的輸入文件是什麼樣的? – sarnold 2011-05-21 23:02:50
他們應該是我已經單獨測試它們。它不會跳入案件陳述。輸入文件是一個mac-vendor分隔列表。 – aitee 2011-05-21 23:06:05
也許我的第一個問題應該包含一個提示:如果我們可以運行一個腳本並輸入重現問題的文件,那麼解決問題就容易得多。 :) – sarnold 2011-05-21 23:08:30