bash - “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 文件中的作用。
解决方案
在您的代码中,第一行从 Node 服务器下载脚本。它是一个 Bash 脚本,Curl 会将其打印到标准输出,因此我们使用管道运算符将其发送到 Bash。破折号 (-) 是告诉程序应该从标准输入而不是从文件中读取的标准方法。管道操作符的工作原理是将命令的标准输出作为标准输入发送到下一个,因此 Bash 将从输入中接收从 Node 服务器下载的脚本并将其视为文件,因此它将执行它。
如果您要在没有| bash -
结尾的情况下运行命令,您会在终端中看到一个很长的 Bash 脚本。如果您尝试运行echo "echo Hi" | bash -
,您将在终端中看到“Hi”,因为您首先echo Hi
在屏幕上打印,然后将其发送到 Bash 执行它,它将打印“Hi”。
第二个命令使用包管理器定期安装 Node.js。
所以基本上你是从 Node 服务器运行一个脚本,执行一些预安装任务(可能从 Node 添加 apt 密钥并安装依赖项),然后你实际上是在安装 Node.js。
推荐阅读
- python - Python mypy 类型错误,可调用联合和可调用列表转换为可调用列表
- mysql - 在 Nodejs 中使用 SSH 连接 MySQL
- sql-server - 使用 sp_executesql 使用自动增量更新表
- javascript - 使用接口的空实例
- r - 如何在 R 中为列表中的多个值运行 ifelse 并在列表中的值与非列表中的值之间设置条件边界?
- excel - Vba中的动态范围使用输入框
- string - 无法使用批处理文件来重写txt文件
- flutter - 数据表中的颤振图
- sql - 选择列的最大值
- html - 如何使用 RESPONSIVE 控制 -overlap div 的位置