1
我正在使用SSHEXEC ant任务对远程linux机器运行SSH脚本。对来自Ant SSH任务(SSHEXEC)的shell提示做出响应
这工作得很好,直到我尝试并调用一个提示用户输入的ksh脚本。该脚本更改当前用户(如su)。它提示用户输入change_request_id和change_request_reason。因此,在一个外壳通常使用这个命令应该是这样的:
change_user deploy_user
Please enter the changes request number for doing this: 1234
Please enter the changes request reason: Because I can
<deploy_user>
但是当我运行从SSHEXEC这些命令,它就会以第一次提示“请输入更改申请数量这样做的:”并停止。尽管我通过SSHEXEC对此提示进行了响应,但它仍然卡在这里。
不幸的是,我们无权修改或复制change_user shell脚本。
我想知道是否有某种方式可以使用SSHEXEC,它可以通过命令发出提示答案。
任何帮助,将不胜感激。
感谢威廉。您的解决方案看起来很理想,但是当我尝试它时,它随着我正在运行的脚本更改当前用户而中断,因此在它完成之前发生错误。除了这个问题,您的解决方案确实允许我回答脚本提示。我想现在是解决这个更改用户问题的问题!干杯。 – Ben 2009-10-12 07:19:27
您可以设置sudo让您以另一个用户的身份运行该命令 - 例如使用sudo -u otheruser作为/ path/to/change_request_cmd的前缀,并配置/ etc/sudoers以允许不使用密码。 – 2009-10-13 10:02:51