使用 ksh(AIX) 时如何在 awk 中调用变量? [复制]

Posted

技术标签:

【中文标题】使用 ksh(AIX) 时如何在 awk 中调用变量? [复制]【英文标题】:How to call a variable inside awk when using ksh(AIX)? [duplicate] 【发布时间】:2020-08-29 12:05:25 【问题描述】:

我正在编写一个脚本,我需要像这样在 awk 代码块中传递变量值

$ ps auxw |awk /$variable/ |awk !/awk/ |wc -l

For example. If I were to check the status of cron I would type something as shown below 
$ ps auxw |awk /cron/ |awk !/awk/
root      4980924  0.0  0.0 1276 1300      - A      Jan 07  3:12 /usr/sbin/cron

我使用过 ps -ef |grep cron |grep -c -v cron 但是当我执行脚本时,当我只有一行输出时,它会报告行数为 2。 有人可以帮忙吗?

【问题讨论】:

你的意思是你用了ps -ef | grep cron | grep -c -v grep? @JamesMcLeod, ps 命令正如您所展示的那样有效,但是当在脚本中调用它时,由于 ksh 中的一些奇怪原因,当实际计数为 1 时,行数为 2 【参考方案1】:

我想,我已经找到了我所寻找的答案。我只需要在双引号内传递变量。谢谢。

$ svar="cron"
$ ps auxw |awk /"$svar"/ |awk !/awk/
root      4980924  0.0  0.0 1276 1300      - A      Jan 07  3:12 /usr/sbin/cron

【讨论】:

以上是关于使用 ksh(AIX) 时如何在 awk 中调用变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 AIX 的 ksh 实现以非交互模式读取配置文件脚本

有啥方法可以在 Linux/AIX 中从 ksh 更改进程名称?

在 AIX/bash 上的 bash 循环中读取文件比在 Linux/ksh 中慢得多 - BLOCKSIZE?

阵列在 AIX KSH 中不起作用

在 AIX 上运行 Linux Shell

孤儿(ksh Shell 脚本未在 CTRL-X 上首先终止)