Bash 脚本和标准输入

Bash 脚本和标准输入

我有一个 C 程序,需要从标准输入读取。这是要求之一,不能改变。

我编写了一个简单的 bash 脚本,它创建我想要的所有目录,处理输出等,并编译和运行我的程序。

当我运行程序时,它等待用户从 stdin 提供输入:

我希望能够从 bash 中提供输入 - 所以不要让用户提供输入(这是有原因的)。因此,理想情况下,我希望输入对用户可见,但从脚本中给出。

如果我写这样的东西:

./task2
cat <<< "my input here"

它运行任务,并且当任务完成时运行 cat 命令。每当程序需要用户输入时,我想以某种方式强制执行该猫。

是否可以?

答案1

如果我理解正确的话,你可以用于tee此目的。在 Bash 脚本中,假设以下行运行已编译的 C 程序:

./my_program

将其替换为:

printf "%s\n" "my input here" | tee /dev/tty | ./my_program

这将打印my input here到您的终端设备将其通过管道传输到./my_program其标准输入,以便它可以读取它。

相关内容