从终端单输入运行 if/else 可执行文件

从终端单输入运行 if/else 可执行文件

我有一个可执行程序,它接受 if/else 用户输入,并且我想从 bash 终端一行运行它,即无需通过程序提示。

有没有办法传递 echo 命令?

答案1

假设您的程序正在逐行读取数据,那么您可以在 bash 中执行以下操作。

{
    echo "input 1"
    echo "input 2"
    echo "input 3"
    ...
    echo "input n"
} | my-program

创建{}一个命令组,该组内命令的输出通过管道传输到my-program.

另一种方法是使用heredoc,它可以写成如下:

{
cat <<EOM
input 1
input 2
input 3
...
input n
EOM
} | my-program

请注意,EOM终止定界符的字符串必须单独位于一行,因此,您需要创建一个命令组或一个子 shell,以确保该cat命令不会将其输出直接发送到您的 shell STDOUT,而是发送到管道。

相关内容