如果我做了以下爲什麼在第一次迭代後停止?
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次迭代,而無需先創建臨時文件?
也許告訴我們它應該做什麼,因爲它不起作用! – 2014-08-29 22:17:58
我不知道'ssh'是否在偷你的fds並閱讀/沖洗它們。嘗試關閉stdin和'&3'作爲'ssh'命令? – 2014-08-29 22:22:13
@EtanReisner加入'/dev/null'解決了這個問題。謝謝=) – 2014-08-29 22:31:49