![循环一个命令的输出并在另一个命令中使用](https://linux22.com/image/4601/%E5%BE%AA%E7%8E%AF%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA%E5%B9%B6%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E4%B8%AD%E4%BD%BF%E7%94%A8.png)
如何将一个命令的输出逐行使用到另一个命令中?我知道如何使用|
管道符号执行此操作,但这会在一个命令中使用整个输出。我想逐行进行...我想我需要将 和 结合起来|
,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
不包含空格,这就有效。