2016-08-24 145 views
0

我有以下代碼連接到服務器。但我似乎在while循環部分出現錯誤。沒有while循環中的第二個條件它工作正常,但我需要第二個條件。不知道爲什麼我的while循環拋出錯誤

有什麼想法?

的錯誤是:

./test.sh: line 83: conditional binary operator expected 
./test.sh: line 83: syntax error near `LINE' 
./test.sh: line 83: `while [[ read LINE <&3; && $((END-START)) -le 59 ]]' 

的代碼是:

exec 3<>/dev/tcp/${SERVER}/${PORT} 
echo "login $NICK $PASS" >&3 

START=$(date +%s); 
minutes=0 
END=0 

while [[ read LINE <&3; && $((END-START)) -le 59 ]] 
do 

END=$(date +%s); 
secs=$((END-START)) 
if [[ "$secs" == 60 ]] 
then 
minutes=$((minutes + 1)) 
START=$(date +%s); 
echo "$minutes have passed since I connected." >&3 
fi 
done 
+0

'[['不是用於分組的語法;它本身就是一個命令,因此不僅僅是包裝另一個命令。 – chepner

回答

3

嘗試

while read LINE <&3 && [[ $((END-START)) -le 59 ]] 

您還可以使用算術條件

while read LINE <&3 && ((END - START <= 59)) 
+0

這已經解決了這個問題。感謝真棒的響應時間。 – user1305988

0
while read line <&3 && (((END-START) < 59)) 

可能是整潔我猜


注:您的腳本使用小寫varaibles怎麼把大寫變量通常保留給系統即LINE->line。與END,START等類似。「

相關問題