如何在程序中发送多个命令作为输入?

如何在程序中发送多个命令作为输入?

我知道如何发送命令作为程序中的输入,如下所示:

echo toto | ./my_prog

并使用进程替换+重定向:

r < <(echo toto)

但是如果我想输入第二个或第三个输入怎么办?

例如,我有一个程序,它首先询问我的用户名,然后询问我其他信息,例如电话号码或不同输入中的其他信息。

答案1

我建议一个这里的文档

./my_proc << END_OF_INPUTS
username
phone number
whatever
END_OF_INPUTS

答案2

使用{}收集多个程序的输出。例如,{ echo one; echo two; } |program。在{前后留一个空格},并确保大括号内的最后一个命令后面有一个分号。

答案3

您也可以使用 printf 和管道

printf "%s\n" "username" "number phone" "whatever" | ./my_prog

相关内容