A lógica no seu Awk
está incorreta, de certo modo, como você está tentando usar a variável definida pelo usuário port
. Para comparações de regex, você pode usar diretamente o operador ~
em vez de match()
conforme abaixo. Também grep
é inútil aqui
netstat -nltp | awk -v port="$PORT" '/mysqld/ && $4 ~ port { print "Yes" }'
Quanto ao motivo do erro que você tem, devido à expansão incorreta entre aspas em torno de port
, o shell o interpreta como uma variável indefinida e porque -u
é definido em set
, ele gera erro para o indefinido situação variável.
Além disso, a substituição de comando '' backquoted 'está desatualizada e propensa a erros, use o $(..)
construct
mysql_status=$(netstat -nltp | awk -v port="$PORT" '/mysqld/ && $4 ~ port { print "Yes" }')