在bash中使用“<”有什么用处

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在bash中使用“<”有什么用处相关的知识,希望对你有一定的参考价值。

我不能区分这两行代码,因为每个命令的输出是相同的

cat volcanoes.txt 
cat < volcanoes.txt
答案

<读取文件(在右侧指定)并将其传送到左侧命令的STDIN。

cat接收输入并将其输出到STDOUT。

如果你为cat提供一个参数,它会从那里获取输入。否则,它从STDIN获取。

<cat结合使用通常并不常用。

另一答案

cat volcanoes.txt将volcanoes.txt作为参数传递,cat将尝试在磁盘上找到并打开。

cat < volcanoes.txt运行没有参数的cat,解释器打开volcanoes.txt作为cat的stdin。

有关更清晰的示例,请尝试使用多个文件进行测试:

echo 1 > a
echo 2 > b

现在你可以通过比较看出差异

grep . a b

VS

cat a b | grep .

在第一个中,ab作为参数传递,因此grep打开它们并知道每行数据的来源,因此它告诉您每行来自哪个文件。

$: grep . a b
a:1
b:2

完成第二种方式,cat读取这两个文件并将内容放在grep的stdin上作为单个匿名流,就像你说cat < volcanoes.txt时用单个文件一样。这样,grep只知道stdin上的数据,它不能给你额外的信息。

$: cat a b | grep .
1
2

对于cat来说,它在功能上是相同的,因为cat是什么和做什么,但它仍然在机械上不同,并且对于某些程序而言,差异可能是瘫痪,或者至少是相关的。

以上是关于在bash中使用“<”有什么用处的主要内容,如果未能解决你的问题,请参考以下文章

JSP里的header和footer是啥?有啥用处?

07 场景演示:MQ有什么用处?

linux脚本的第一行有啥作用呢

ServletConfig对象和ServletContext对象

水晶报表是啥?主要有啥用处?

Spring 中的Dao的用处?