netstat -an | grep LISTEN |grep 12458

randaliang 2013-02-18 05:41:37
写了一个shell脚本,怎么都执行都得不到想要的结果
#!/bin/bash
echo " press y to continue "

www='netstat -an | grep LISTEN |grep 12344'
$www
if [ "$www" = "12344" ]; then
echo "script is running :--------$www"
else
echo "stop"
fi
总是执行不对
得到如下类似的脚本
unix 2 [ ACC ] STREAM LISTENING 12344 /var/run/cups/cups.sock
unix 2 [ ACC ] STREAM LISTENING 13071 public/cleanup
unix 2 [ ACC ] STREAM LISTENING 13078 private/tlsmgr
unix 2 [ ACC ] STREAM LISTENING 13082 private/rewrite
unix 2 [ ACC ] STREAM LISTENING 13086 private/bounce
不知道哪里写错了请指导
...全文
448 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tom_殇子 2013-02-20
  • 打赏
  • 举报
回复
shell 脚本不是很懂…… 呵呵 ……
randaliang 2013-02-20
  • 打赏
  • 举报
回复
谢谢 xinhua0910,确实是这个问题
rucypli 2013-02-19
  • 打赏
  • 举报
回复
你echo $www就知道结果了
xinhua0910 2013-02-19
  • 打赏
  • 举报
回复
引用 3 楼 randaliang 的回复:
1楼 我已经试验过了结果是 netstat -an | grep LISTEN |grep 12344 ,是没有执行
这是因为你的命令两边用的是单引号,不是顿号(和波浪线在一起的那个符号)
xinhua0910 2013-02-19
  • 打赏
  • 举报
回复
你这个脚本是不是就是想检查这个端口有没有启,来证明程序有没有在运行,对吧? 如果是这样,那你在if前“$www”这是做什么,你这样就是执行搜索出来的结果。肯定会提示找不到什么命令。 改成下面的: #!/bin/bash if `netstat -an | grep LISTEN |grep 12344 1>/dev/null 2>&1` ; then echo "script is running -------" else echo "stop" fi 注意命令两边是键盘tab键上那个顿号,不是单引号。不知道是不是浏览器的原因,你的我复制出来看是单引号
randaliang 2013-02-19
  • 打赏
  • 举报
回复
2楼 也不行 而且我在www='netstat -an | grep LISTEN |grep 1234'的时候,如果 |与-an连接,则报netstat命令不对,用你说的方法也没得到结果。
randaliang 2013-02-19
  • 打赏
  • 举报
回复
1楼 我已经试验过了结果是 netstat -an | grep LISTEN |grep 12344 ,是没有执行
goodmrning 2013-02-19
  • 打赏
  • 举报
回复
www='netstat -an | grep LISTEN |grep 12344' 改为: www='netstat -an | grep LISTEN |grep 12344 | awk '{print $8}''

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧