Bash 壳牌公司';回声&x27;从';解析环境变量时出错;redis cli信息';输出

Bash 壳牌公司';回声&x27;从';解析环境变量时出错;redis cli信息';输出,bash,shell,redis,environment-variables,Bash,Shell,Redis,Environment Variables,我尝试使用Zabbix代理监控Redis运行状况,并希望解析Redis cli INFO命令的输出: $ redis-cli INFO # Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:9435c3c2879311f3 ... 使用shell编写脚本并用信息值子集组成JSON文件: { "redis_version": "4.0.9", "used_memory":

我尝试使用Zabbix代理监控Redis运行状况,并希望解析
Redis cli INFO
命令的输出:

$ redis-cli INFO
# Server
redis_version:4.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:9435c3c2879311f3
...
使用
shell
编写脚本并用信息值子集组成JSON文件:

{
  "redis_version": "4.0.9",
  "used_memory": 100,
  "used_memory_rss": 200
}
但当我尝试将解析的值回显到控制台时,出现了一个错误。这是我的演示脚本:

#!/bin/bash
FILE_ECHO="/tmp/test_out.txt"
FILE_REDIS="/tmp/test_redis.txt"

echo "redis_version:4.0.9" >${FILE_ECHO}
/usr/bin/redis-cli INFO >${FILE_REDIS}

ECHO_VERSION=$(grep "redis_version" "${FILE_ECHO}")
REDIS_VERSION=$(grep "redis_version" "${FILE_REDIS}")

echo "{\"node\": \"${ECHO_VERSION}\"}"
echo "{\"node\": \"${REDIS_VERSION}\"}"
我预计产出将是:

{"node": "redis_version:4.0.9"}
{"node": "redis_version:4.0.9"}
在这两种情况下,但实际上我有:

{"node": "redis_version:4.0.9"}
"}node": "redis_version:4.0.9

是我的
test\u redis.txt

检查test\u redis.txt是否有回车符。是的,
\r
是原因。这是有效的:
REDIS\u VERSION=$(grep“REDIS\u VERSION”“${FILE\u REDIS}”| tr-d'\r')
。谢谢,@user1934428。