在命令行解析但在shell脚本中失败

时间:2016-11-18 02:36:26

标签: bash shell scripting

为什么这会在命令行中运行:

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

...但是当我将它分配给shell脚本中的变量时不起作用?如,

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

相关地,为什么将redis-cli info的原始输出分配给shell变量然后回显它会导致redis-cli输出的乱码?

1 个答案:

答案 0 :(得分:1)

捕获变量时,应将整个命令链放在子shell中,而不仅仅是开头部分:

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

使用$( )而不是传统的反引号也更好。