假设终端中运行的正常命令是这样的.
user$ thecommand
Please enter your first name:
>然后等你输入你的名字..。很简单,但是如果在bash脚本中,我尝试这样做:
#! /bin/bash
echo "What is your name?"
read name
thecommand如何让脚本输入"$name“来响应”of“,而不是让用户自己手动输入呢?
发布于 2015-07-28 11:11:15
可以按管道添加输入,如下所示:
echo yourname | ./yourscript有关更多输入,您可以使用printf
printf "input1\ninput2" | ./yourscript其中\n的意思是新行,它将像新输入一样被使用。
发布于 2015-07-28 11:15:50
运行您的脚本如下:
./yourscript.sh < file.txt
其中file.txt将包含名称。
现在,您的脚本将从文件( file.txt )中查找名称,在file.txt中,您可以键入用作read命令输入的名称。读取命令一次在线读取,因此如果脚本中的读取命令多于读取命令,则file.txt文件中应该有多行
发布于 2015-07-28 11:32:29
对于复杂的情况,例如,如果输入取决于命令的输出,则可以编写"expect“脚本。
要了解它是如何工作的,您可以交互式地自动生成这样的脚本。
$ autoexpect thecommand
然后运行它
$ expect -f script.exp
https://stackoverflow.com/questions/31674277
复制相似问题