重定向stdin以从文件中读取,同时将stdin保留为Bash中的输入
我试图建立一个程序,要求用户输入所有的时间。为了测试这个程序(Xtreme编程),在每次测试中键入所有这些输入是一项巨大的工作。因此,我决定将输入写在一个文件中,并将stdin重定向到该文件,如重定向stdin以从文件中读取,同时将stdin保留为Bash中的输入,bash,file-io,Bash,File Io,我试图建立一个程序,要求用户输入所有的时间。为了测试这个程序(Xtreme编程),在每次测试中键入所有这些输入是一项巨大的工作。因此,我决定将输入写在一个文件中,并将stdin重定向到该文件,如 cat inputs.txt |/myprogram或/myprogram
cat inputs.txt |/myprogram
或/myprogram
到目前为止,这工作正常,但我希望能够在文件达到EOF后自己键入其他输入(之前也没什么关系),因此程序第一部分的输入(我已经知道正在工作)将自动写入,其余部分我可以键入。
cat
可以读取多个文件,包括使用名称“-”的标准输入:
如果
/myprogram
需要在当前shell中运行,事情就会变得更棘手。您可以使用流程替换:
./myprogram < <(cat inputs.txt -)
/myprogram
cat
可以读取多个文件,包括使用名称“-”的标准输入:
如果
/myprogram
需要在当前shell中运行,事情就会变得更棘手。您可以使用流程替换:
./myprogram < <(cat inputs.txt -)
/myprogram
Awesome,如果程序是否在当前shell中运行对我来说不是问题,那么我完全忘记了cat的减号运算符。谢天谢地,如果程序是否在当前shell中运行对我来说不是问题,那么我完全忘记了cat的减号操作符。谢谢
mkfifo p
cat inputs.txt - > p &
./myprogram < p