簡體   English   中英

如何使用 Bash 調用 redis-cli get?

[英]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 因此,如果它打印foobar我們將得到

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM