netstat -an | grep LISTEN |grep 12458
写了一个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
不知道哪里写错了请指导
shell
------解决方案--------------------你这个脚本是不是就是想检查这个端口有没有启,来证明程序有没有在运行,对吧?
如果是这样,那你在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键上那个顿号,不是单引号。不知道是不是浏览器的原因,你的我复制出来看是单引号