2

我们知道将文本文件的内容发送file.txt到从标准输入读取的脚本很简单:

the_script < file.txt

假设我想做与上面相同的事情,除了我想将额外的一行文本发送到脚本,然后是文件的内容?肯定有比这更好的方法:

echo "Here is an extra line of text" > temp1
cat temp1 file.txt > temp2
the_script < temp2

这可以在不创建任何临时文件的情况下完成吗?

4

3 回答 3

3

以 cdarke 的回答为基础,使其从左到右可读:

echo "Extra line" | cat - file.txt | the_script
于 2015-09-11T00:57:29.217 回答
2

有几种方法可以做到这一点。现代 shell(Bash 和 ksh93)具有支持从标准输入读取单个值的功能,称为此处字符串

cat - file.txt <<< "Extra line"|the_script

的第一个参数是从标准输入读取cat的连字符。-这里的字符串遵循<<<符号。

于 2012-09-06T09:59:16.450 回答
0

这应该在bash

{ echo "Here is an extra line of text"; cat file.txt; } < the_script
于 2012-09-06T07:06:01.263 回答