bash - 在 awk 中访问别名参数
问题描述
我想定义一个 bash 别名来获取 systemctl 服务的状态。这是我到目前为止所做的:
status () { systemctl list-units -a | grep $1 | awk '{print $4}'; }
它打印出 systemctl 服务的状态。现在我还想打印 systemctl 服务的名称,即我传递给 status() 的参数。我不能只写
awk '{print $1 " " $4}'
因为$1
将引用 awk 捕获的第一个参数。那么我怎样才能访问“原版”$1
呢?
解决方案
将参数作为命令行参数传递:
... | awk -v service="$1" '{print service " " $4}'
@ctac_ 还建议您可以消除该grep
命令:
awk -v 'service="$1" '$1==service{print $1,$4}'
推荐阅读
- dictionary - Groovy - 如何在地图中用另一个值初始化地图中的值
- jquery - 选择的选择 jQuery 未在首次加载时显示
- pandas - 从 csv 文件中提取一个带有希伯来语列名的列,python
- c++ - 分治求最大子数组问题
- javascript - 使用 NuxtJS (VueJS) 设置动态 ActionBar 标题和
突变问题 - jquery - 使用 jQuery 同步任何数据属性
- excel - 确定哪些页面文本框在多页上有文本(已解决)
- python-3.x - Keras.ImageDataGenerator 结果显示 [flow()]
- python - virtualenv 引用全局环境
- html - 有没有一种快速的方法可以在我的本地目录中找到一个 html 元素?