管道到 sudo -E bash -

you*_*sef 13 sudo curl nodejs

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

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

mur*_*uru 13

这是一种无需保存文件然后执行即可执行脚本的简短方法。当您保存文件然后执行它时,可能会出错:

  • 用户没有正确输入文件名
  • 用户没有使用正确的外壳(可能是运行sh foo.sh而不是bash foo.sh
  • 用户试图执行该文件而不是在其上设置 bash ( ./foo.sh),并且忘记设置执行权限
  • 用户忘记使用 sudo

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

就个人而言,我鄙视管道卷曲来打击。这不安全。


Bar*_*ino 7

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

  • @Youssef `-E` 保留环境变量(比如代理设置的变量),`-` 告诉 bash 从标准输入(即管道)读取命令。 (6认同)
  • 谢谢,但是命令末尾的`-E` 选项和`-` 的作用是什么? (3认同)