首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用使用系统命令的bash脚本;当命令向您询问某些内容时,如何输入?

使用使用系统命令的bash脚本;当命令向您询问某些内容时,如何输入?
EN

Stack Overflow用户
提问于 2015-07-28 10:56:23
回答 3查看 110关注 0票数 0

假设终端中运行的正常命令是这样的.

代码语言:javascript
运行
复制
user$ thecommand
Please enter your first name:
>

然后等你输入你的名字..。很简单,但是如果在bash脚本中,我尝试这样做:

代码语言:javascript
运行
复制
#! /bin/bash
 echo "What is your name?"
     read name
 thecommand

如何让脚本输入"$name“来响应”of“,而不是让用户自己手动输入呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-28 11:11:15

可以按管道添加输入,如下所示:

代码语言:javascript
运行
复制
echo yourname | ./yourscript

有关更多输入,您可以使用printf

代码语言:javascript
运行
复制
printf "input1\ninput2" | ./yourscript

其中\n的意思是新行,它将像新输入一样被使用。

票数 1
EN

Stack Overflow用户

发布于 2015-07-28 11:15:50

运行您的脚本如下:

./yourscript.sh < file.txt

其中file.txt将包含名称。

现在,您的脚本将从文件( file.txt )中查找名称,在file.txt中,您可以键入用作read命令输入的名称。读取命令一次在线读取,因此如果脚本中的读取命令多于读取命令,则file.txt文件中应该有多行

票数 0
EN

Stack Overflow用户

发布于 2015-07-28 11:32:29

对于复杂的情况,例如,如果输入取决于命令的输出,则可以编写"expect“脚本。

要了解它是如何工作的,您可以交互式地自动生成这样的脚本。

$ autoexpect thecommand

然后运行它

$ expect -f script.exp

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

https://stackoverflow.com/questions/31674277

复制
相关文章

相似问题

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