我已經寫了bash腳本,將過濾「尾巴」輸出,其全部命令尾不提供在bash腳本輸出
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,是預期的輸出字符串)我已經嘗試寫入日誌文件並只寫stdout但都不工作。
我已經試過腳本使用'貓'而不是'尾巴',並且工作正常。但我不想轉儲整個文件的輸出,因此使用'尾巴'。
我一直在使用「三通」,但也試過無濟於事
這個腳本的最終目標與要發送的電話號碼,因爲它涉及到PBX將串行設備到另一個系統,並作爲CID。
感謝所有幫助提前
'tail -f'永遠不會退出。 – Barmar
@Barmar你應該擴大你的評論(解釋發生了什麼)並將其作爲答案發布。 –
@JimGarrison在你之前 – Barmar