解析在命令行工作,但在shell脚本

问题描述:

失败,为什么会变成这样的工作在命令行:当我将它赋值给变量的shell脚本里面解析在命令行工作,但在shell脚本

redis-cli info | grep instantaneous_ops_per_sec | cut -d : -f 2 

...但不工作?例如,

num=`redis-cli info` | grep instantaneous_ops_per_sec | cut -d : -f 2 

相关地,为什么分配的redis-cli info原始输出到壳变量,然后呼应它导致redis的-CLI输出的乱码版本?

当捕捉到一个变量,你应该把整个命令链子shell,而不仅仅是开头部分:

num=$(redis-cli info | grep instantaneous_ops_per_sec | cut -d : -f 2) 

而且最好是使用$(),而不是传统的反引号。

+0

我发誓我曾试过。 : -/ 为什么会将文件'cat'-ing到shell变量中,然后回显该文件导致该文件的乱码版本? – rivenmyst137

+0

@ rivenmyst137听起来像[这个问题](http://*.com/questions/29378566/i-just-assigned-a-variable-but-echo-variable-shows-something-else) –