This works:
$ /usr/bin/ps -ef | awk '/ root\ /{p++};END{print p}'
but this doesn't:
$ /usr/bin/ps -ef | awk 'BEGIN{p=0};/ root\ /{p++}END{print p}'
awk: syntax error near line 1
awk: bailing out near line 1
and this does:
$ /usr/bin/ps -ef | awk 'BEGIN{p=0}/ root\ /{p++}END{print p}'
0
and just to prove it's REALLY niggly, it's fussy about the order you give it things too:
$ /usr/bin/ps -ef | awk '/ root\ /{p++}BEGIN{p=0}END{print p}'
awk: syntax error near line 1
awk: bailing out near line 1
while this works fine:
$ /usr/bin/ps -ef | awk 'BEGIN{p=0}END{print p}'
0