将awk输出保存到变量

Jer*_*emy 26 linux bash shell awk centos

任何人都可以帮我解决这个问题吗?

我正在尝试将awk输出保存到变量中.

variable = `ps -ef | grep "port 10 -" | grep -v "grep port 10 -"| awk '{printf "%s", $12}'`
printf "$variable"
Run Code Online (Sandbox Code Playgroud)

编辑:$ 12对应于在该进程上运行的参数.

谢谢!

wen*_*ens 36

#!/bin/bash

variable=`ps -ef | grep "port 10 -" | grep -v "grep port 10 -" | awk '{printf $12}'`
echo $variable
Run Code Online (Sandbox Code Playgroud)

请注意,等号后面没有空格.

您还可以使用$()允许嵌套并且可读的.


NiK*_*iZe 13

我认为$()语法更容易阅读...

variable=$(ps -ef | grep "port 10 -" | grep -v "grep port 10 -"| awk '{printf "%s", $12}')
Run Code Online (Sandbox Code Playgroud)

但真正的问题可能是$12不应该用""

自问题被更改以来编辑,这将返回有效数据,但不清楚预期的输出ps -ef是什么以及变量中的预期值.

  • 最后一个管道之后和“{printf”之前应该有一个“awk”。它可能是在编辑答案时被意外删除的。 (2认同)