Shell 如何将awk结果分配给变量

Shell 如何将awk结果分配给变量,shell,awk,Shell,Awk,我需要将以下awk结果分配给一个变量。请指导我如何使用shell脚本 awk -F: '$1=="{root}" {print $3}' /etc/passwd 像 但是它不起作用您需要避免在相等符号周围使用空格。由于不推荐使用反勾号,您可以将代码放入$(..)块中 variable=$(awk -F: '$1=="{root}" {print $3}' /etc/passwd) 您想分配awk命令的结果(即数字成功或失败值)还是它的输出(即它打印的任何字符串,如果有)?对于其他命令,您将如

我需要将以下awk结果分配给一个变量。请指导我如何使用shell脚本

awk -F: '$1=="{root}" {print $3}' /etc/passwd


但是它不起作用

您需要避免在相等符号周围使用空格。由于不推荐使用反勾号,您可以将代码放入
$(..)
块中

variable=$(awk -F: '$1=="{root}" {print $3}' /etc/passwd)

您想分配awk命令的结果(即数字成功或失败值)还是它的输出(即它打印的任何字符串,如果有)?对于其他命令,您将如何执行此操作?(提示-这里讨论的命令是awk没有区别)不要在
=
周围添加空格。但比背向抽搐更好的是,使用括号,参见Avinash post。我想知道他是否真的想要
root
内括号?我见过的任何passwd文件都不会有这个。是的,我想他是指
awk-F:'$1==“root”{print$3}/etc/passwd
对于以下内容,它对我不起作用User=root variable=$(awk-F:'$1==“${User}”{print$3}/etc passwd echo${variable}try
awk-v=“${User})-F:'$1==print$3}/passwd etc
variable=$(awk -F: '$1=="{root}" {print $3}' /etc/passwd)