我有以下用于连接服务器的代码。但我似乎在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 :(得分:3)
尝试
while read LINE <&3 && [[ $((END-START)) -le 59 ]]
您也可以使用算术条件
while read LINE <&3 && ((END - START <= 59))
答案 1 :(得分:0)
while read line <&3 && (( (END-START) < 59 ))
我猜可能更整洁
注意:对您的脚本使用小写变量coz大写变量通常保留给系统,即LINE->line
。与END
,START
等同样。