管道到sudo -E bash-


10

我想知道将下载的文件通过管道传递curlsudo -E bash -以下shell中的目的是什么:

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

Answers:


10

这是执行脚本的一种简便方法,无需保存文件然后执行。当您保存文件然后执行它时,许多事情都会出错:

  • 用户输入的文件名不正确
  • 用户未使用正确的外壳程序(可能运行了sh foo.sh而不是bash foo.sh
  • 用户尝试执行文件而不是对其设置bash(./foo.sh),但忘记了设置执行权限
  • 用户忘记使用 sudo

通过提供单个命令行来执行,开发人员可以减少由于luser错误而导致出错的地方的数量。

就我个人而言,我不屑于将卷发卷曲为重击。不安全


7

该命令将下载文件并尝试以root特权执行它。


3
谢谢,但是-E选项-的目的是什么?在命令末尾是什么?
Y先生

5
@Youssef -E保留环境变量(例如代理设置的变量),并-告诉bash从标准输入(例如管道)读取命令。
muru
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.