我已經寫了一個小shell scipt,但我無法讓我的if語句正常工作。Shell腳本。如果聲明不起作用
我正在通過一個文件(14380行和134列)運行while循環,並且我想在遵循條件number in column 4 > 6 and number in column 4 < 7
的某些行上執行一些工作。第4列中的數字是一個實數,我知道if語句只能用整數運算。這是我的問題嗎?我認爲if語句會把我的號碼get_lon
看作是一個整數,例如。它會將其讀作get_lon=14
。那可以。 經過很長時間,它沒有給出錯誤消息,但它不會根據需要過濾數據。目前該文件的所有行都正在通過測試。
#!/bin/bash/sh
ulimit -s unlimited
datafile=$1
wfno=0
cat $datafile | while read line
do
wfno=`expr $wfno + 1`
echo $wfno
get_lon=`awk '(NR=='$wfno'){print $4}' $datafile`
echo $get_lon
if test ["$get_lon" > "6" -a "$get_lon" < "7"]
then
awk '(NR=='$wfno'){for(i=7;i<=NF;i++){print i-7, $i;}}' $datafile > xy
echo 'awk done '
some more stuff...
else
echo "Line not valid"
fi
done
請問,任何人都可以幫忙嗎?
你確定'/ bin/bash/sh'是一個shell嗎? – chepner