在循环内的bash shell脚本中执行ssh命令

时间:2011-06-14 22:42:06

标签: bash ssh

我正在尝试在应该执行以下操作的bash shell脚本中执行ssh命令: 1)ssh到主持人 2)执行命令 3)打印命令值 4)重复步骤1-3 5)退出bash shell脚本

我已设置密码较少的远程主机条目,将主机密钥添加到远程主机

我想测试远程主机上运行的httpd进程的各种状态 在一个文本文件httpd_process.txt中,我有:

/etc/init.d/httpd status(停止,启动,重启)

我在脚本中执行以下操作:

while read LINE
do
    echo "Httpd Request: $LINE"
    status=`$LINE`
    echo "Status: $status"
    sleep 5 # sleep so that next 
done < /path_name/httpd_process.txt

exit 0

我假设每次循环都会从输入文本文件中读取另一个输入字符串,并向远程主机发出请求。 但是,我遇到的是在第一次请求后脚本终止。 我是否正确地认为,当第一个请求被发送时,它会创建一个子进程,一旦该进程完成,我的脚本就会完成,并且下一轮循环不会被执行?

1 个答案:

答案 0 :(得分:12)

ssh正在消耗stdin。传递它-n以防止这种情况发生。