为 bash 中的进程预填充标准输入
Pre-fill stdin for a process in bash
我想要一个进程在最初向它发送一个字符串后继续从 stdin 读取输入。我怎样才能在 bash 中做到这一点?
这里有一个不正确的解决方案来解释我正在尝试做的事情。
echo "$HEADER" | cat - < /dev/stdin
这里的 cat 命令必须先接收 $HEADER
的内容,然后才能像 cat -
那样工作。
您可以按顺序传递多个命令,其中第一个写入 header,第二个只是 cat
以将输入从标准输入中继到标准输出:
{ echo "$HEADER"; cat; } | yourcommand
你的方法的问题是你只能有一个标准输入,而你却尝试使用两个。 echo "foo" | cat /dev/stdin /dev/tty
可能是一个选项,但这不必要地依赖于终端。
我想要一个进程在最初向它发送一个字符串后继续从 stdin 读取输入。我怎样才能在 bash 中做到这一点?
这里有一个不正确的解决方案来解释我正在尝试做的事情。
echo "$HEADER" | cat - < /dev/stdin
这里的 cat 命令必须先接收 $HEADER
的内容,然后才能像 cat -
那样工作。
您可以按顺序传递多个命令,其中第一个写入 header,第二个只是 cat
以将输入从标准输入中继到标准输出:
{ echo "$HEADER"; cat; } | yourcommand
你的方法的问题是你只能有一个标准输入,而你却尝试使用两个。 echo "foo" | cat /dev/stdin /dev/tty
可能是一个选项,但这不必要地依赖于终端。