首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bash脚本将enter [return]键传递给通过ssh heredoc启动的另一个脚本

bash脚本将enter [return]键传递给通过ssh heredoc启动的另一个脚本
EN

Stack Overflow用户
提问于 2017-01-25 03:32:21
回答 1查看 214关注 0票数 1

我在创建脚本时遇到了一个问题。它将一些数据复制到另一台服务器,然后使用ssh heredoc连接到该服务器,然后启动位于heredoc内的第二台服务器上的第二个脚本。

我遇到的问题是,如果您通过bash脚本执行第二个脚本(而不是手动启动它),那么它将跳过一个关键步骤,即第二个脚本要求您按enter键,然后输入密码以生成一些文件。

enter

password

我没有访问第二个脚本的权限,所以我不能更改任何内容。我尝试了所有类型的echo | ./script2.sh combos、printf、heredoc,但都不起作用。编辑: expect在第二台服务器上不可用。

下面是我正在做的例子:

代码语言:javascript
运行
复制
scp -r $dir xxxx@xxx.xx.x.xx:/as/df/qwerty/

ssh xxxx@xxx.xx.x.xx "bash -s" << EOF
# install
/as/df/qwerty/${choice}/./install_${choice}
EOF
EN

Stack Overflow用户

发布于 2017-01-25 04:27:59

问题是,使用bash -s时,外壳程序从标准输入读取命令,远程脚本也从标准输入读取命令。

您可以让远程bash source从have文档动态生成脚本,而不是将脚本作为标准输入传递给shell,例如:

代码语言:javascript
运行
复制
ssh foo@bar "bash -c 'source <(cat <<EOF
/invoke/your/script.sh
EOF
)'"
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41837418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档