【发布时间】:2023-10-11 06:38:02
【问题描述】:
如果我执行以下操作
tr -cd 'a-z' < /dev/urandom | fold -w10 | head -n40 > pw
for f in $(seq -w 40); do echo linux$f.example.com;done > hosts
while read -r x && read -r y <&3; do ssh $x -l root echo $y;done <hosts 3<pw
然后循环在第一次迭代后停止,但如果我插入一个echo(这不是我想要的),那么它会循环遍历所有 40 个。
while read -r x && read -r y <&3; do echo ssh $x -l root echo $y;done <hosts 3<pw
问题
如何让它执行所有 40 次迭代,而不先创建临时文件?
【问题讨论】:
-
也许告诉我们它应该做什么,因为它不起作用!
-
我想知道
ssh是否正在窃取您的 fds 并读取/刷新它们。尝试为ssh命令关闭标准输入和&3? -
@EtanReisner 添加
</dev/null 2>/dev/null解决了这个问题。谢谢=)