Linux 如何在Bash中将管道结果分配给变量

Linux 如何在Bash中将管道结果分配给变量,linux,bash,awk,Linux,Bash,Awk,我想将脚本的“运行时间”分配给变量“realtime”。因此,我尝试如下: realtime = `{ time (echo "mirror -Rv $LocalPath $LocalPath";echo "quit";)|lftp -u s1238262 FTPS://$RemoteHost ; } 2>&1 |grep "real"| awk '{print $2}'` echo $realtime 但我有一个错误: ++ grep real ++ awk '{print $

我想将脚本的“运行时间”分配给变量“realtime”。因此,我尝试如下:

realtime = `{ time (echo "mirror -Rv $LocalPath $LocalPath";echo "quit";)|lftp -u s1238262 FTPS://$RemoteHost ; } 2>&1 |grep "real"| awk '{print $2}'`
echo $realtime
但我有一个错误:

++ grep real
++ awk '{print $2}'
+ realtime = 0m2.403s
./test.sh: line 6: realtime: command not found
+ echo
我试过了

realtime = `{ time pwd; } 2>&1 |grep real|awk '{print $2}'`

它确实奏效了。但是ftp脚本没有。有人能帮我吗?

bash中的
=
周围不能有空格

result=`ls`

bash中的
=
周围不能有空格

result=`ls`

除非在交互式会话中定义了名为
realtime
的函数或别名,否则我怀疑
realtime=…
调用不起作用。
bash
中的变量赋值要求变量名和
=
符号之间,或
=
符号之后和值之前没有空格(例如,
realtime=something
是好的,
realtime=something
realtime=something
realtime=something
都不是好的。)而且
grep foo | awk'{bar}
通常写得更好“。非常感谢!但是关于重新编写awk,我没有得到它。我以
realtime=`{time pwd;}2>&1|awk'/grep“real”/{print$2}`
的形式编写了它。但是它出错了:
+awk'/grep“real”/{print$2}”“
+a=
除非您在交互式会话中定义了名为
realtime
的函数或别名,否则我怀疑
realtime=…
调用不起作用。
bash
中的变量赋值要求变量名与
=
符号之间或
符号之后没有空格。”=
在值之前签名(例如,
realtime=something
是好的,
realtime=something
realtime=something
realtime=something
都不好)。此外,
grep foo | awk'{bar}
通常写得更好“。非常感谢!但是关于awk的重新编写,我没有得到它。我写的是
realtime=`time pwd;}2>&1|awk'/grep“real”/{print$2}`
。但是它出错了:
++awk'/grep“real”/{print$2}'
+a=/code>(对不起,忍不住:-)干杯!我还不习惯bash的“无空间”规则。。(对不起,忍不住:-)干杯!我还不习惯bash的“无空间”规则。