以非交互方式将参数传递给交互式程序
我有一个 bash 脚本,它使用 read
命令以交互方式读取命令的参数,例如是/否选项。有没有办法在非交互式脚本中调用此脚本并传递默认选项值作为参数?
这不仅仅是我必须传递给交互式脚本的一个选项。
I have a bash script that employs the read
command to read arguments to commands interactively, for example yes/no options. Is there a way to call this script in a non-interactive script passing default option values as arguments?
It's not just one option that I have to pass to the interactive script.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
许多方法都
可以
可以
使用 此处文档(这 非常可读)
使用 此处字符串
Many ways
pipe your input
redirect from a file
use a here document (this can be very readable)
use a here string
对于更复杂的任务,有
expect
( http://en.wikipedia.org/维基/期望)。它基本上模拟用户,您可以编写脚本如何对特定程序输出和相关内容做出反应。
这也适用于像
ssh
这样禁止向其传输密码的情况。For more complex tasks there is
expect
( http://en.wikipedia.org/wiki/Expect ).It basically simulates a user, you can code a script how to react to specific program outputs and related stuff.
This also works in cases like
ssh
that prohibits piping passwords to it.您可以将数据放入文件中并像这样重定向它:
脚本的数据:
执行脚本:
You can put the data in a file and re-direct it like this:
Data for the script:
Executing the script:
只是想再添加一种方式。在别处找到的,很简单。
假设我想在命令行中为命令“execute_command”的所有提示传递“是”,那么我只需通过管道将“是”传递给它。
这将使用 yes 作为所有是/否提示的答案。
Just want to add one more way. Found it elsewhere, and is quite simple.
Say I want to pass yes for all the prompts at command line for a command "execute_command", Then I would simply pipe yes to it.
This will use yes as the answer to all yes/no prompts.
您还可以使用 printf 将输入通过管道传输到脚本。
You can also use printf to pipe the input to your script.