“暂时”重定向stdin

时间:2015-02-16 06:38:20

标签: bash stdin zsh

我想将stdin重定向到一个文件,但是一旦它完成该文件,就可以从键盘生成stdin。我知道如何定期重定向stdin,我只是不知道如何切换回来。我目前使用zsh,并且不愿意切换,但用bash标记,因为我不反对在bash中编写脚本。

2 个答案:

答案 0 :(得分:1)

要使用文件foo的输入然后从键盘执行bar,请使用:

cat bar - | foo

当用户完成输入时,他必须在新行上键入ctrl-D以表示他输入的结束。

答案 1 :(得分:0)

您的问题实在太广泛,无法详尽解答,但这里有一项技术可以满足您的要求。

{ some commands; other commands; } <file
more commands   # read stdin

您可以使用exec和/或保存的文件描述符(暂时重复文件描述符0,重定向,然后从重复的文件描述符中恢复)执行类似的操作,但上面的操作相当透明。

如果您的要求不同,请更新您的问题以正确描述您的问题。