我無法從我的bash腳本中獲取變量以在awk管道上工作。如何獲得bash變量在awk管道上的工作
SERVER_PORT="27018"
...
HOLDER=`netstat -tlpn | awk -v sp=$SERVER_PORT '/:sp */ {split($NF,a,"/"); print a[1]}'`
執行該變量的命令後,下一個等式爲TRUE!
...
if [ "$HOLDER" == "" ]; then
...
如果我將shell窗口上運行
netstat -tlpn | awk '/:27018 */ {split($NF,a,"/"); print a[1]}'
一切都很好,這讓我的進程的PID。
所以我的問題是:如何正確地將變量傳遞給awk或者有什麼壞的? 運行CentOS 7
我不太明白你在「匹配字符串:'$ 0〜」:「sp」*「'」下的意思。你能爲我解釋嗎? – 2014-09-19 18:07:52
@АртёмDoe編輯。希望澄清事情。 – 2014-09-19 18:15:17
@АртёмDoe請閱讀http://www.gnu.org/software/gawk/manual/gawk.html#Regexp,並特別注意'字符串常量'和'regexp常量'之間的區別以及「使用動態正則表達式'。另外,如果您打算進行更多的awk編程,請閱讀Arnold Robbins編寫的書「Effective Awk Programming,Third Edition」。 – 2014-09-19 18:17:51