linux – 简单的bashscript帮助检查开放端口

weixin_38051538 2019-09-12 11:15:00
我是编程的新手,目前我在bash中写了一个简单的脚本,我写道: probe='nc -zv localhost 19997' output=' grep -c 'succeeded' $probe' if [ $output == '0' ] then echo 'Client online' else echo 'Offline' fi 该脚本的目的是通过netcat检查客户端是否通过反向ssh连接到我的服务器端口19997,如果这是检测,则打印一条正消息. nc会打印 Connection to localhost 19997 port [tcp/*] succeeded! 如果它检测到客户端,我想只将’succeeded’作为已建立连接的关键字,并通过grep的退出代码触发if语句.但是当我运行这个脚本时,我得到: test.sh: line 3: [: too many arguments 我哪里做错了?
...全文
22 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38088844 2019-09-12
  • 打赏
  • 举报
回复
您可以直接测试命令的结果,如下所示: if ( nc -zv localhost 19997 2>&1 >/dev/null ); then echo 'Online' else echo 'Offline' fi 子壳(…)不是必需的,但我喜欢在测试时使用它们以获得清洁度. 有关退出代码和测试的更多信息,请参阅: > Exit and Exit Status> Test Constructs

474

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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