[root@es01 ~]# redis-cli -h IP_ADDRESS -p 6380 -a admin info 2>/dev/null|grep config_file|cut -d: -f2
/opt/redis/7.0.5/cluster/redis-6380.conf
[root@es01 ~]# cat $(redis-cli -h IP_ADDRESS -p 6380 -a admin info 2>/dev/null|grep config_file|cut -d: -f2)
: No such file or directoryer/redis-6380.conf
有人能帮助我吗?
答案1
redis-cli
输出带有 Windows/DOS 行尾的所有内容(即行尾为\r\n
而不是\n
)。因此,第二行实际上会尝试输出以下文件:
/opt/redis/7.0.5/cluster/redis-6380.conf\r
不存在。此外,打印错误消息时,末尾的回车符会将光标推到行首,而打印错误消息的其余部分将从头开始继续。因此
cat: /opt/redis/7.0.5/cluster/redis-6380.conf\r: No such file or directory
变成
: No such file or directoryer/redis-6380.conf
您需要\r
从输出中删除字符,如下所示:
cat $(redis-cli -h IP_ADDRESS -p 6380 -a admin info 2>/dev/null|grep config_file|cut -d: -f2|tr -d $'\r')
附注:当错误消息以冒号开头时,总是某处隐藏着一个回车符。