可以在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,让很多键值作为输入传递?
发布于 2019-02-22 14:45:42
抛开安装问题不谈,我猜你想要像这样的东西
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但是,如果您有数以千计的结果,由于底层操作系统中的参数列表长度限制,它可能仍然需要将命令行拆分为多个命令。(谷歌ARG_MAX。)我不知道redis-cli是否支持这种语法;简单地谷歌一下就知道不支持。
https://stackoverflow.com/questions/54820303
复制相似问题