0

我想将此命令输出分配给变量

echo "status:0
id:239965eb20557679348-1
aaa:[bbb:config this
ccc:0.758]" | awk -F: 'NR==3 {print $3}'

但是当我尝试使用多种方法时echo $my_var,我失败了,结果为空白,

my_var=$(echo "status:0
id:239965eb20557679348-1
aaa:[bbb:config this
ccc:0.758]" | awk -F: 'NR==3 {print $3}')

也不

my_var=`echo "status:0
id:239965eb20557679348-1
aaa:[bbb:config this
ccc:0.758]" | awk -F: 'NR==3 {print $3}'`

没有运气就失败了,我有什么遗漏吗?

4

3 回答 3

0

如果某些东西在命令行上起作用但在脚本中不起作用,答案几乎总是在脚本中前面有一些东西导致失败。做这个:

$ cat -v script
$ ./script

并将结果复制/粘贴到您的问题中,以便我们了解实际情况。

于 2013-07-25T08:07:57.327 回答
0

我从代码中删除了 NR==3 并且工作正常

my_var=`echo "status:0 id:239965eb20557679348-1 aaa:[bbb:config this ccc:0.758]" | awk -F: '{print $3}'`

此外,当我将 NR==3 更改为 NR=3 时,它也可以工作

my_var=`echo "status:0 id:239965eb20557679348-1 aaa:[bbb:config this ccc:0.758]" | awk -F: 'NR=3{print $3}'`
于 2013-07-25T04:35:17.087 回答
0

\您在第三次尝试中意外添加。只需删除它;它会起作用的。

$ val=`echo "status:0 
id:239965eb20557679348-1
aaa:[bbb:config this
ccc:0.758]" | awk -F: 'NR==3 { print $3 } '`
$ echo $val
config this 
$
于 2013-07-25T04:45:40.180 回答