Linux 如何在Bash中将管道结果分配给变量
我想将脚本的“运行时间”分配给变量“realtime”。因此,我尝试如下: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 = `{ 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的“无空间”规则。