将标准输入重定向到标准输出

迈克·亨德森

假设我有一个普通的C程序,它将两个数字加在一起:

#include <stdio.h>

int main(void) {
    int a, b;
    printf("Enter a: "); scanf("%d", &a);
    printf("Enter b: "); scanf("%d", &b);

    printf("a + b = %d\n", a + b);
    return 0;
}

除了手动输入到每一个它执行的时间termnial的,我输入的值a,并b到一个文件:

// input.txt
10
20

然后stdin我重定向到该文件:

./a.out < input.txt

该程序可以工作,但是其输出有点混乱:

Enter a: Enter b: a + b = 30

有没有一种方法可以将stdin重定向到stdout,以便输出看起来就像用户手动键入值一样,即:

Enter a: 10
Enter b: 20
a + b = 30
尼克·奥德尔

您可以为此使用期望。Expect是用于自动执行交互式命令行程序的工具。您可以通过以下方式自动键入这些值:

#!/usr/bin/expect
set timeout 20

spawn "./a.out"

expect "Enter a: " { send "10\r" }
expect "Enter b: " { send "20\r" }

interact

这将产生如下输出:

$ ./expect     
spawn ./test
Enter a: 10
Enter b: 20
a + b = 30

还有更多的例子在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将标准输出重定向到文件

来自分类Dev

将标准输出重定向到整数

来自分类Dev

将错误重定向到标准输出

来自分类Dev

将标准输入重定向到标准输入

来自分类Dev

将进程的标准输出重定向到其自己的标准输入

来自分类Dev

如何将标准输出重定向到标准错误

来自分类Dev

重定向标准输入和标准输出

来自分类Dev

重定向标准输入和标准输出?

来自分类Dev

将输出重定向到标准输出而不是文件

来自分类Dev

Windows cmd输出重定向到标准输入(>&0)

来自分类Dev

C - 将标准输入/输出重定向到单个双向文件描述符

来自分类Dev

蟒蛇。将标准输出重定向到套接字

来自分类Dev

C将标准输出重定向到几个地方

来自分类Dev

Linux将标准输出重定向到实时管道

来自分类Dev

Python。将标准输出重定向到套接字

来自分类Dev

如何将Jmeter标准输出重定向到文件

来自分类Dev

Bash将标准输出重定向到功能

来自分类Dev

无法将标准输入重定向到Python脚本

来自分类Dev

C将标准输入重定向到键盘

来自分类Dev

将脚本标准输入重定向到后台文件

来自分类Dev

在 VBS 中重定向到标准输出

来自分类Dev

重定向标准输出和标准输入-Java

来自分类Dev

在 bash 脚本中重定向标准输入和标准输出

来自分类Dev

将一个命令的标准错误重定向到另一命令的标准输入

来自分类Dev

将tty重定向到标准

来自分类Dev

如何将命令的标准输出和标准输入都重定向到一行中的文本文件?

来自分类Dev

重定向标准错误并保留标准输出

来自分类Dev

重定向标准输出OCaml

来自分类Dev

重定向EOF的标准输出