我有一个名为 file.txt 的文件,其中有一些内容为“abcdef”,当我这样做时,cat < file.txt
我得到输出 abcdef 但当我这样做时echo < file.txt
,没有返回任何输出。为什么输入重定向不适用于 echo,但适用于 cat?
答案1
为什么输入重定向不能与 一起工作
echo
,但可以与 一起工作cat
?
因为该echo
命令不像标准输入那样接受任何内容cat
,所以它只接受参数。
从man cat
:
cat - 连接文件并在标准输出上打印
概要
猫 [选项]... [文件]...
描述
连接文件,或者标准输入,到标准输出。
从man echo
:
echo - 显示一行文本
概要
回声[简短选项]...[细绳]...
echo 长选项
描述
回声STRING到标准输出。
(强调我的)
答案2
您可以使用如下方式echo
读取file.txt
(而不是重定向):
echo "$(<file.txt)"
示例输出:
abcdef