我有一个程序需要非常快速地接收输入并且我知道输入必须是什么,但是我认为有一个计时器在打开程序和输入输入之间没有延迟。
我尝试过使用bash脚本,但它似乎不起作用,并尝试./program;密码也不起作用(它返回'密码'不是命令)。
我的bash脚本如下所示:
#! /bin/bash
cd ~/Downloads
./program
password
也许它正在运行,但我没有收到程序的任何输出,这通常会显示获取输入所需的时间。
答案 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中保存为明文,这显然不是很好。