我编写了一个 bash 脚本,它将过滤“tail”输出,整个命令
tail -f /var/log/asterisk/messages | awk 'match($12, /[^0-9]91([0-9]{10})@default/, a) {print a[1]}'
从 CLI 可以正常工作,但放在 bash 脚本中时不能:
#!/bin/bash
phonenumber=$(tail -f /var/log/asterisk/messages | awk 'match($12, /[^0-9]91([0-9]{10})@default/, a) {print a[1]}')
echo "$phonenumber >> test.log"
它不输出任何东西,(2135551234,是预期的输出字符串)我尝试写入日志文件并只写入标准输出,但都不起作用。
我已经尝试使用'cat'而不是'tail'的脚本并且效果很好。但我不想转储整个文件的输出,因此使用“tail”。
我也尝试过使用'tee'但无济于事
此脚本的最终目标是将进入 PBX 的电话号码发送到串行设备到另一个系统并用作 CID。
提前感谢您的所有帮助