为什么我的脚本不适用于FreeBSD? (awk:语法错误)

时间:2016-03-24 16:03:01

标签: awk freebsd

为什么this脚本在FreeBSD上不起作用?我在Centos和Debian上运行脚本,一切都很好。在FreeBSD(10.2)上我遇到以下错误:

awk: syntax error at source line 1
 context is
    match($0, "^listen >>>  queue:[[:space:]]+(.*)", <<< 
awk: bailing out at source line 1
-0.9902

作为一个例子,这里有一些php-form状态的输出:

pool:                 www
process manager:      ondemand
start time:           29/Feb/2016:15:18:54 +0200
start since:          2083770
accepted conn:        1467128
listen queue:         0
max listen queue:     129
listen queue len:     128
idle processes:       1
active processes:     2
total processes:      3
max active processes: 64
max children reached: 1
slow requests:        0

On Centos和Debian,当我跑:

/path/to/script/php-fpm-check.sh "idle processes" http://127.0.0.1/status

我得到1,但在FreeBSD上面是上面提到的错误。

1 个答案:

答案 0 :(得分:2)

match的3参数形式是GNU awk扩展(docs)。您必须找到另一种捕获匹配的方法(可能使用RSTART和RLENGTH变量设置为match()的副作用),或者在freebsd系统上安装gawk。