【问题标题】:What does a | (pipe character) do in a shell (bash) command?什么是 | (管道字符)在shell(bash)命令中做什么?
【发布时间】:2015-10-30 11:03:11
【问题描述】:

我必须运行这个命令来安装 NPM。它有什么作用?什么是|最后?

curl https://raw.githubusercontent.com/creationix/nvm/v0.23.2/install.sh | bash

另外,我是否在 Bash 中运行类似 UNIX 的命令?为什么这行得通?是不是说 Bash 是终端的 UNIX 命令兼容接口?

【问题讨论】:

  • curl 检索指定的文件,该文件恰好是一个 shell 脚本,并通过管道传送到 bash,这是将执行它的 shell 程序。如果您在“什么是 bash”上进行 Google 搜索,您会找到可能的解释。但是,是的,bash 是几个不同的 Unix shell 实现之一。
  • @Zloj 在一般情况下,这是真的。在知名发布者和信任关系以及审查代码的某种合理方式的特定情况下,它并没有那么糟糕(但仍然很糟糕)。

标签: bash


【解决方案1】:

在 bash(和大多数 *nix shell)中,|(管道)符号获取一个命令的输出并将其用作下一个命令的输入。

您在这里所做的是使用 curl 检索 install.sh 文件,然后将其内容输出到 bash,这是一个将执行 install.sh 内容的 shell

简而言之,您正在下载并运行 install.sh 脚本。

【讨论】:

  • 你是什么意思“输入下一个命令”? “bash”命令是否接受输入?
  • 所有 *nix 程序都有三个流,标准输入、标准输出和标准错误。当您通过管道将输入传递给程序可以使用的标准时,类似于参数。一个例子是cat file | grep keyword | less,它将打印文件的内容,然后过滤文件的内容,然后在屏幕上显示结果。 stackoverflow.com/questions/9834086/… 解释得更好。
猜你喜欢
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2011-09-05
  • 2017-02-12
  • 1970-01-01
相关资源
最近更新 更多