为什么地球上的输出(真的,最后一行)是:
num=$(redis-cli info | grep instantaneous_ops_per_sec | cut -d : -f 2)
echo num $num
ts=$(date '+%s')
echo ts $ts
ns="$1.ops_per_sec"
echo "$ns"
echo "$ns $num"
echo "$ns $num $ts"
...这样的:
num 0
ts 1479439922
foo.ops_per_sec
foo.ops_per_sec 0
1479439922_sec 0
答案 0 :(得分:2)
redis-cli
的输出以CRLF结尾,但只有LF被命令替换剥离。 CR输出到终端时,将光标移动到行的开头。您没有注意到$num
是一行中输出的最后一件事,但在最后一种情况下,$ts
的空格和值会写在之前的数据之上。
解决此问题的最简单方法是简单地从num
的值中删除任何尾随CR:
num=${num%$'\r'}