Chinaunix

标题: 求助,循环。。。 [打印本页]

作者: d38179677    时间: 2008-07-21 18:14
标题: 求助,循环。。。

  1. #!/bin/sh
  2. echo -n "input IP or NUMBER:"
  3. read INPUT
  4. if
  5.    [ -n  "$(echo $INPUT | awk  -F "." '($1<=256 && $1>=0) && ($2<=256 && $2>=0) && ($3<=256 && $3>=0) && ($4<=256 && $4>=0) && ( NF==4 )')" ]
  6.     then
  7.       mysql -e "SELECT INET_ATON('$INPUT');"
  8. elif
  9.    [ "$INPUT" -le "4294967295" -a  "$INPUT" -ge "0" ] 2>/dev/null
  10.     then
  11.       mysql -e "SELECT INET_NTOA('$INPUT');"
  12. else
  13.      printf "wrong input\n"
  14. 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