将文本输入到通过终端打开的程序中,但速度很快

时间:2018-02-11 11:25:03

标签: python linux bash input output

我有一个程序需要非常快速地接收输入并且我知道输入必须是什么,但是我认为有一个计时器在打开程序和输入输入之间没有延迟。

我尝试过使用bash脚本,但它似乎不起作用,并尝试./program;密码也不起作用(它返回'密码'不是命令)。

我的bash脚本如下所示:

#! /bin/bash 
cd ~/Downloads 
./program
password 

也许它正在运行,但我没有收到程序的任何输出,这通常会显示获取输入所需的时间。

2 个答案:

答案 0 :(得分:0)

首先,将执行更改为~/Downloads/program password。还要确保程序是可执行的(如果它不是chmod +x)并且它需要参数。

此外,为了避免每次都提及路径,请将程序移至~/bin/(如果不存在则创建),并将该位置添加到$ PATH(如果不存在)。

答案 1 :(得分:0)

如果“程序”不希望密码作为命令行参数,那么您可能希望通过stdin输入:

#! /bin/bash 
cd ~/Downloads 
echo "password" | ./program

或者,如果有更多输入:

./program <<INPUT
password
moreInput
moreInput2
...
moreInputN
INPUT

第一种变体使用简单的管道,第二种变体使用HereDocs

在程序期望密码作为参数的(不可能的)情况下,您必须按如下方式传递它:

./programm password

中间没有换行符和分号。

我说这是“不太可能的”,因为如果从shell中使用这样的调用,那么密码将在bash-history中保存为明文,这显然不是很好。