Bash 如何在awk脚本中使用搜索模式中的变量

Bash 如何在awk脚本中使用搜索模式中的变量,bash,shell,awk,Bash,Shell,Awk,我想在输入匹配模式时,在查找匹配流程时打印pid: ps aux | awk -v in="$1" '/in/{print $1}' 看来前一句awk是不对的。在google like中检查了许多结果后,我在下面更改了脚本,但仍然无法工作: ps aux | awk -v in="$1" '/$0 ~ in/{print $1}' 或 你所有的尝试都相当接近。问题是中的在awk中是一个保留关键字 您可以使用: ps aux | awk -v var="$1" '$0 ~ var {print

我想在输入匹配模式时,在查找匹配流程时打印pid:

ps aux | awk -v in="$1" '/in/{print $1}'
看来前一句awk是不对的。在google like中检查了许多结果后,我在下面更改了脚本,但仍然无法工作:

ps aux | awk -v in="$1" '/$0 ~ in/{print $1}'


你所有的尝试都相当接近。问题是
中的
awk
中是一个保留关键字

您可以使用:

ps aux | awk -v var="$1" '$0 ~ var {print $1}'
或者非正则表达式方式:

ps aux | awk -v var="$1" 'index($0, var) {print $1}'
我认为
pgrep“$1”
将是更好的选择。。。
ps aux | awk -v var="$1" 'index($0, var) {print $1}'