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

Unix 响应Ant SSH任务(SSHEXEC)的shell提示,unix,ant,ssh,Unix,Ant,Ssh,我正在使用SSHEXEC ant任务对远程linux机器运行SSH脚本 在我尝试调用提示用户输入的ksh脚本之前,这一切都很好。脚本将更改当前用户(如su)。它会提示用户输入更改请求id和更改请求原因。因此,通常在shell中使用此命令如下所示: change_user deploy_user Please enter the changes request number for doing this: 1234 Please enter the changes request reason:

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

在我尝试调用提示用户输入的ksh脚本之前,这一切都很好。脚本将更改当前用户(如su)。它会提示用户输入更改请求id和更改请求原因。因此,通常在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>
更改用户部署用户
请输入执行此操作的更改请求编号:1234
请输入更改请求原因:因为我可以
但是当我从SSHEXEC运行这些命令时,它会出现第一个提示“请为此输入更改请求编号”,并停止。尽管我正在通过SSHEXEC对这个提示进行管道响应,但它仍然卡在这里

很遗憾,我们无权更改或复制change_用户shell脚本

我想知道是否有什么方法可以使用SSHEXEC,它可以通过命令发送提示答案


非常感谢您的帮助。

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

#!/usr/bin/ksh
#
# $1 is change request number
# $2 is change request reason
#
/path/to/change_request_cmd <<PARAMS
$1
$2
PARAMS
#/usr/bin/ksh
#
#$1是变更请求编号
#$2是变更请求原因
#

/路径/to/change\u request\u cmd谢谢William。您的解决方案看起来很理想,但是当我尝试它时,由于我正在运行的脚本更改了当前用户,所以它会在完成之前出错。除了这个问题,您的解决方案确实允许我回答脚本提示。我想现在的问题是解决这个改变用户的问题!干杯。您可以设置sudo,让您以另一个用户的身份运行该命令——例如,在/path/to/change\u request\u cmd前面加上sudo-u otheruser,并配置/etc/sudoers,使其无需密码即可运行。