This question already has an answer here:
Executing ssh command in a bash shell script within a loop [duplicate]
(1个答案)
6年前关闭。
如果我执行以下操作
然后循环在第一次迭代后停止,但是如果我插入
问题
如何使它执行所有40次迭代,而无需先创建临时文件?
(1个答案)
6年前关闭。
如果我执行以下操作
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。
运行时将fds关闭到ssh
。
关于linux - 为什么在第一次迭代后停止该过程? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25576907/
10-15 05:23