我有一个 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
其标准输入,以便它可以读取它。