Linux命令行中的管道

Linux命令行中的管道

考虑以下命令:

echo ’.dump’ | sqlite bacula.db > bacula.sq

它在做什么以及|做什么?

也许有人可以给我指一本有关管道的手册,或者解释一下发生了什么。谢谢。

答案1

Shell 管道运算符|使命令的标准输出成为下一个命令的标准输入,而不创建中间文件。

您可以在以下来源中找到以简单方式解释的详细信息:

答案2

此命令将由七个字符组成的字符串写入命令’.dump’,后跟一个换行符sqlite。 (总共 12 个字节。)

sqlite命令将无法理解该指令,因此不会向目标文件写入任何内容bacula.sq,报告Error: incomplete SQL: ’.dump’标准错误

也许您的意思是这个,它使用单引号字符'而不是撇号

echo '.dump' | sqlite bacula.db > bacula.sq

答案3

|是 Unix/Linux 中的管道运算符。它可以用在第一个命令的输出可以用作第二个命令的输入的地方。

例如:

ls -l | less将显示目录中文件的长列表。该less命令将 的输出ls -l作为输入并显示文件列表,您可以在其中向上/向下滚动并查看它们。

相关内容