[英]How to call redis-cli get using Bash?
是否可以在 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
嗎?
撇開安裝問題不談,我猜你想要類似的東西
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
是否支持這種語法; 簡短的谷歌搜索表明沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.