我想定义一个bash别名来获取systemctl服务的状态。 这是我到目前为止所做的:
status () { systemctl list-units -a | grep $1 | awk '{print $4}'; }
将我打印出systemctl服务的状态。 现在我还想打印systemctl服务的名称,即我传递给status()的参数。我不能只是写
awk '{print $1 " " $4}'
因为$1
将引用awk捕获的第一个参数。
那么如何访问“原始” $1
?
答案 0 :(得分:3)
将参数作为命令行参数传递:
... | awk -v service="$1" '{print service " " $4}'
@ctac_还建议您删除grep
命令:
awk -v 'service="$1" '$1==service{print $1,$4}'