我正在使用 netcat 来测试远程交换服务器(我们称之为 Exchange1)是否与此代码联机。
nc -w 3 192.168.130.17 25
当且仅当 netcat 扫描收到以下响应时,我想创建一个具有该服务器名称的文件“220 SMTP 服务器就绪”,表示exchange1在线。如果没有响应,我不想将名称写入文件,因为它处于脱机状态。
- 这个叫什么。我相信它是一种命令结果过滤,但很难找到任何有关其如何完成的文章。
- 有人可以提供一个简单的例子,以便我可以从中学习。
答案1
您可以grep
通过将其他命令的输出通过管道传输到 来检查某些命令的输出是否与模式匹配grep
。您在块grep
内使用if
。
一个明显愚蠢的例子(全世界都称其为“星期五”,对吧?):
if date +%A | grep -q 'Friday'; then # -q tells grep not to echo the matched text
throw_a_party
else
echo "Nope, sorry, not time yet."
fi
Bash 手册的相关部分包括“管道”和“复合命令”。