Bash 壳牌公司';回声&x27;从';解析环境变量时出错;redis cli信息';输出
我尝试使用Zabbix代理监控Redis运行状况,并希望解析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":
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。