首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为shell脚本提供非交互式的编程输入

为shell脚本提供非交互式的编程输入
EN

Stack Overflow用户
提问于 2015-01-09 18:21:31
回答 1查看 514关注 0票数 1

我必须从JAVA触发一个RPM命令。该命令如下所示。

代码语言:javascript
复制
rpm -addsign apc.rpm

此RPM在内部称为GPG。GPG将需要一个密码,它最终将密码传递回RPM,RPM在命令行上将控制权抛回给用户,等待密码。我不希望用户输入该密码。我想以某种方式将该密码提供给RPM,这样用户除了简单地运行JAVA程序之外不需要做任何事情。像下面这样提供密码是没有帮助的。

代码语言:javascript
复制
rpm -addsign abc.rpm -passwd

由于这个密码不是RPM使用的,而是简单地抛出GPG要求的任何东西,所以上面提到的方法将不起作用。有没有一种方法可以给出一个文件作为后续问题的输入?

我怎么才能让这成为可能呢?任何建议都会有很大帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-01-09 23:34:00

实际上,密码是rpm读取并传递给gpg的内容。

该问题存在于getpass(3)中,用于读取重新打开/dev/tty以关闭回显等的密码。

因此,在调用rpm --addsign之前,需要将一个伪tty附加到/dev/tty (这将允许传递输入,就好像它来自键盘一样)。

简而言之:使用expect (这将完成创建伪tty/将其附加到/dev/tty的繁重工作)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27858417

复制
相关文章

相似问题

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