“cat < file.txt”和“echo < file.txt”之间的区别

“cat < file.txt”和“echo < file.txt”之间的区别

我有一个名为 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

相关内容