解析在命令行工作,但在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)
而且最好是使用$()
,而不是传统的反引号。
我发誓我曾试过。 : -/ 为什么会将文件'cat'-ing到shell变量中,然后回显该文件导致该文件的乱码版本? – rivenmyst137
@ rivenmyst137听起来像[这个问题](http://*.com/questions/29378566/i-just-assigned-a-variable-but-echo-variable-shows-something-else) –