我们知道将文本文件的内容发送file.txt
到从标准输入读取的脚本很简单:
the_script < file.txt
假设我想做与上面相同的事情,除了我想将额外的一行文本发送到脚本,然后是文件的内容?肯定有比这更好的方法:
echo "Here is an extra line of text" > temp1
cat temp1 file.txt > temp2
the_script < temp2
这可以在不创建任何临时文件的情况下完成吗?
以 cdarke 的回答为基础,使其从左到右可读:
echo "Extra line" | cat - file.txt | the_script
有几种方法可以做到这一点。现代 shell(Bash 和 ksh93)具有支持从标准输入读取单个值的功能,称为此处字符串:
cat - file.txt <<< "Extra line"|the_script
的第一个参数是从标准输入读取cat
的连字符。-
这里的字符串遵循<<<
符号。
这应该在bash
:
{ echo "Here is an extra line of text"; cat file.txt; } < the_script