Chinaunix
标题:
求助,循环。。。
[打印本页]
作者:
d38179677
时间:
2008-07-21 18:14
标题:
求助,循环。。。
#!/bin/sh
echo -n "input IP or NUMBER:"
read INPUT
if
[ -n "$(echo $INPUT | awk -F "." '($1<=256 && $1>=0) && ($2<=256 && $2>=0) && ($3<=256 && $3>=0) && ($4<=256 && $4>=0) && ( NF==4 )')" ]
then
mysql -e "SELECT INET_ATON('$INPUT');"
elif
[ "$INPUT" -le "4294967295" -a "$INPUT" -ge "0" ] 2>/dev/null
then
mysql -e "SELECT INET_NTOA('$INPUT');"
else
printf "wrong input\n"
fi
复制代码
已经有这段shell,但是要加入循环,当执行一遍这段shell后,再提示输入内容,直到输入q或Q时,跳出循环
我把上面这段shell改成一个ipnum函数
然后加了
while [ "$INPUT"="q" -o "$INPUT"="Q" ]
do
ipnum
done
但是不行,应该怎么改?
[
本帖最后由 d38179677 于 2008-7-21 18:22 编辑
]
作者:
host-sandylau
时间:
2008-07-21 18:18
标题:
回复 #1 d38179677 的帖子
呵呵,看错了
[
本帖最后由 host-sandylau 于 2008-7-21 18:30 编辑
]
作者:
d38179677
时间:
2008-07-21 18:20
不明白,你这个是输入q/Q就退出,不是就报错,但是没有执行我上面的那短代码啊
作者:
d38179677
时间:
2008-07-21 18:22
谁能写个完整的让我看下么。。。
[
本帖最后由 d38179677 于 2008-7-21 18:24 编辑
]
作者:
host-sandylau
时间:
2008-07-21 18:39
#!/bin/sh
ipnum(){
if
[ -n "$(echo $INPUT | awk -F "." '($1<=256 && $1>=0) && ($2<=256 && $2>=0) && ($3<=256 && $3>=0) && ($4<=256 && $4>=0) && ( NF==4 )')" ]
then
mysql -e "SELECT INET_ATON('$INPUT');"
elif
[ "$INPUT" -le "4294967295" -a "$INPUT" -ge "0" ] 2>/dev/null
then
mysql -e "SELECT INET_NTOA('$INPUT');"
else
printf "wrong input\n"
return
fi
}
while :;do
echo -n "input IP or NUMBER:"
read INPUT
while [ "$INPUT" != "q" -a "$INPUT" != "Q" ];do
ipnum
continue 2
done
break
done
[
本帖最后由 host-sandylau 于 2008-7-21 19:57 编辑
]
作者:
d38179677
时间:
2008-07-21 20:45
晚上在家,明天上班再试试~~~
先谢谢了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2