循环一个命令的输出并在另一个命令中使用

循环一个命令的输出并在另一个命令中使用

如何将一个命令的输出逐行使用到另一个命令中?我知道如何使用|管道符号执行此操作,但这会在一个命令中使用整个输出。我想逐行进行...我想我需要将 和 结合起来|xargs但不确定。

redis-cli keys \* | redis-cli get [key would go here]

答案1

参数答案是:

redis-cli keys \* | xargs -L 1 redis-cli get

答案2

使用 while 循环每一行:

redis-cli-keys \* | while read key; do redis-cli get "$key"; done

答案3

为了完整起见,这里是for循环变体:

$ for key in $(redis-cli-keys \*); do redis-cli get $key; done

笔记:只要$keys不包含空格,这就有效。

相关内容