响应来自Ant SSH任务(SSHEXEC)的shell提示

时间:2009-10-12 01:43:42

标签: unix ant ssh

我正在使用SSHEXEC ant任务对远程linux盒运行SSH脚本。

这个工作正常,直到我尝试调用一个提示用户输入的ksh脚本。该脚本更改当前用户(如su)。它会提示用户输入change_request_id和change_request_reason。因此,通常在shell中使用此命令将如下所示:

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,它会使用命令发送快速答案。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您是否可以将另一个脚本放在与接受命令行参数的更改用户脚本相同的服务器上,然后调用更改请求脚本本身?例如。在ksh:

#!/usr/bin/ksh
#
# $1 is change request number
# $2 is change request reason
#
/path/to/change_request_cmd <<PARAMS
$1
$2
PARAMS

让SSHEXEC调用此脚本可能更容易。