【发布时间】:2019-05-20 00:18:30
【问题描述】:
#!/bin/bash
while read LINE
do
[ ! -f /tmp/$(basename $0) ] && cp $0 /tmp/ && konsole -e $0 && exit
rm /tmp/$(basename $0) # open separate window for code to run
$LINE << EOF # read line (ssh cmd)
cd /st/task/ #commands during ssh
./start.sh #need something to let this run and go back to beginning
EOF
done < pdns.txt
因此 start.sh 命令旨在连续运行,但它会阻止 while 循环迭代
【问题讨论】:
-
ssh可能正在从标准输入读取,在read LINE有机会再次运行之前消耗了pdns.txt的其余部分。 -
感谢您的回复,但问题如前所述,start.sh 没有按设计完成,我仍然需要完成循环的所有迭代
-
然后在后台运行
start.sh。 (ssh从标准输入读取可能是您尚未注意到的问题,除非您已经将其配置为从/dev/null读取。) -
还有其他方法吗?我已经读到 bash 中没有 goto 命令,所以有人可以告诉我另一种方式,因为我想查看 start.sh 的输出,但我也希望 while 循环完成
-
“完成”是指您希望多个
ssh命令并行运行(每个都在一个单独的konsole窗口中)?
标签: bash loops ssh while-loop