管道到可执行文件而不在bash中退出/ EOF

kd8*_*d88 10 bash sh

我有一个(只读)可执行文件"myexec",我总是执行后跟输入"input1"(一个字符串),然后我继续我的业务""和"退出"我感觉如下:

$ myexec
> input1
> do something else for as long as I like
> exit
Run Code Online (Sandbox Code Playgroud)

我想做的是使用输入"input1" 自动执行"myexec",然后能够"只要我喜欢就做其他事情".从我所看到的,我的选择是:

$ myexec <<< "input1"
Run Code Online (Sandbox Code Playgroud)

要么

$ echo "input1" | myexec
Run Code Online (Sandbox Code Playgroud)

要么

$ myexec << EOF
input1
EOF
Run Code Online (Sandbox Code Playgroud)

但这些方法的问题是它们在读取"input1"后终止"myexec".如何避免EOF /退出/终止?

che*_*ner 6

你可以使用cat这个:

$ { echo "input1"; cat; } | my exec
Run Code Online (Sandbox Code Playgroud)


pyn*_*exj 5

您可以使用来自动执行此操作.例如:

#!/usr/bin/expect

spawn /my/exec
expect "> "
send "input1\r"
interact
Run Code Online (Sandbox Code Playgroud)