大家好,
我有一个程序占用8888端口,启动这个程序得20分钟,启动过程中端口不打开,启动成功后就可以通过lsof -i:8888看到了,
我想实现脚本(用until),当发现8888开启了,就输出“port opened”
麻烦给位帮小弟看看哇
until的用法问题
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: until的用法问题
a=1; until($a eq 0); sleep 10; sudo lsof -i:8888; $a=$?; done; echo "open"
不知道$?初始是不是会干扰。如果干扰,可以$?赋值给$a,再判断。
不知道$?初始是不是会干扰。如果干扰,可以$?赋值给$a,再判断。
凭啥这样。通常,你可以expect直接搞这进程的信息处理。占用8888端口,启动这个程序得20分钟
● 鸣学
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: until的用法问题
-bash: syntax error near unexpected token `done'
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: until的用法问题
a=1; until ( $a -eq 0 );do sleep 10; sudo lsof -i:3306; $a=$?; done ; echo "open"
-bash: 1: command not found
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 13521 mysql 11u IPv4 52640 TCP *:mysql (LISTEN)
-bash: 1=0: command not found
-bash: 1: command not found
-bash: 1: command not found
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 13521 mysql 11u IPv4 52640 TCP *:mysql (LISTEN)
-bash: 1=0: command not found
-bash: 1: command not found
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: until的用法问题
a=1
until [ $a -eq 0 ]
do
sleep 10
lsof -i:3306
a=$?
done
echo "open"
exit 0
until [ $a -eq 0 ]
do
sleep 10
lsof -i:3306
a=$?
done
echo "open"
exit 0
- link_01
- 帖子: 1024
- 注册时间: 2008-11-05 13:24
Re: until的用法问题
不熟悉util,就用while啊
大概是这样子。
代码: 全选
a=1
while [ $a -ne 0 ]; do
sleep 10
lsof -i:8888
a=$?
done
echo "opened"
exit 0
笔记
-------------------------------------
http://blog.163.com/wqt_1101
-------------------------------------
http://blog.163.com/wqt_1101
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: until的用法问题
eexpress,
a=1
until [ $a -eq 0 ]
do
sleep 10
lsof -i:3306
a=$?
done
echo "open"
exit 0
如果我吧lsof -i:3306改成一个for循环就不行了,这是为什么呀
a=1
until [ $a -eq 0 ]
do
sleep 10
lsof -i:3306
a=$?
done
echo "open"
exit 0
如果我吧lsof -i:3306改成一个for循环就不行了,这是为什么呀
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙