首页 > 解决方案 > “bash - apt-get”与此命令中的“apt-get”有何不同?

问题描述

curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt-get install -yq nodejs

我们正在使用此命令来更新节点。我只是bash -在终端中运行,而那只是返回了一个新行。我在网上查看过,无法找到或理解添加bash -apt-get在我们的 update.sh 文件中的作用。

标签: bashapt-get

解决方案


在您的代码中,第一行从 Node 服务器下载脚本。它是一个 Bash 脚本,Curl 会将其打印到标准输出,因此我们使用管道运算符将其发送到 Bash。破折号 (-) 是告诉程序应该从标准输入而不是从文件中读取的标准方法。管道操作符的工作原理是将命令的标准输出作为标准输入发送到下一个,因此 Bash 将从输入中接收从 Node 服务器下载的脚本并将其视为文件,因此它将执行它。

如果您要在没有| bash -结尾的情况下运行命令,您会在终端中看到一个很长的 Bash 脚本。如果您尝试运行echo "echo Hi" | bash -,您将在终端中看到“Hi”,因为您首先echo Hi在屏幕上打印,然后将其发送到 Bash 执行它,它将打印“Hi”。

第二个命令使用包管理器定期安装 Node.js。

所以基本上你是从 Node 服务器运行一个脚本,执行一些预安装任务(可能从 Node 添加 apt 密钥并安装依赖项),然后你实际上是在安装 Node.js。


推荐阅读