2016-08-24 92 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等类似。“

相关问题