是否可以用bash调用redis-cli
?
我尝试过:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
echo 'keys $line' | redis-cli | sed 's/^/get /' | redis-cli
done < "$1"
它返回:
line 4: redis-cli: command not found
我正在尝试将Redis键nt:<numbers>
作为输入文件和显示中的键进行匹配。
样本输入:
nt:60136667431
我运行的命令:
./updateT.sh input.txt
对于通过输入传递的许多键值,我是否可以通过脚本调用redis-cli get cmd
?
答案 0 :(得分:0)
除了安装问题之外,我猜你想要类似的东西
while read -r line; do
redis-cli keys "$line" |
xargs -n 1 echo redis-cli get
done <"$1"
取出echo
,如果它打印出您认为正确的内容。如果您可以get
使用多个键,则可以取出-n 1
。
鉴于输入行nt:60136667431
将执行
redis-cli keys nt:60136667431
,并将每条输出线从该行传递到redis-cli get
。因此,如果打印出foo
和bar
,我们将得到
echo redis-cli get foo
echo redis-cli get bar
...如果您想最终执行这些命令,显然可以再次取出echo
。如果您取出-n 1
,它将尽可能多地收集到
echo redis-cli get foo bar
尽管如果您拥有成千上万个结果,由于底层OS中的参数列表长度限制,可能仍需要将命令行分成多个命令。 (Google ARG_MAX
。)我不知道redis-cli
是否支持此语法;简短的谷歌搜索表明不是。