在awk中访问别名参数

时间:2018-10-21 10:31:33

标签: bash awk

我想定义一个bash别名来获取systemctl服务的状态。 这是我到目前为止所做的:

status () { systemctl list-units -a | grep $1 | awk '{print $4}'; }

将我打印出systemctl服务的状态。 现在我还想打印systemctl服务的名称,即我传递给status()的参数。我不能只是写

awk '{print $1 " " $4}'

因为$1将引用awk捕获的第一个参数。 那么如何访问“原始” $1

1 个答案:

答案 0 :(得分:3)

将参数作为命令行参数传递:

... | awk -v service="$1" '{print service " " $4}'

@ctac_还建议您删除grep命令:

awk -v 'service="$1" '$1==service{print $1,$4}'