![Linux命令行中的管道](https://linux22.com/image/85566/Linux%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E7%9A%84%E7%AE%A1%E9%81%93.png)
考虑以下命令:
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
作为输入并显示文件列表,您可以在其中向上/向下滚动并查看它们。