Pipe zu Sudo -E Bash -

10

Ich frage mich , was ist der Zweck die heruntergeladene Datei von Rohrleitungen durch curlin sudo -E bash -der folgenden Shell:

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

Mr.Y.
quelle

Antworten:

10

Es ist eine kurze Möglichkeit, ein Skript auszuführen, ohne die Datei speichern und dann ausführen zu müssen. Wenn Sie die Datei speichern und dann ausführen, kann eine Reihe von Fehlern auftreten:

  • Der Benutzer hat den Dateinamen nicht richtig eingegeben
  • Benutzer hat nicht die richtige Shell verwendet (möglicherweise ausgeführt sh foo.shstatt bash foo.sh)
  • Der Benutzer hat versucht, die Datei auszuführen, anstatt bash darauf zu setzen ( ./foo.sh), und hat vergessen, die Ausführungsberechtigungen festzulegen
  • Benutzer hat vergessen zu verwenden sudo

Durch die Bereitstellung einer einzigen Befehlszeile zur Ausführung können die Entwickler die Anzahl der Stellen verringern, an denen aufgrund eines Benutzerfehlers Fehler auftreten können.

Persönlich verachte ich Piping Curl, um zu schlagen. Es ist nicht sicher.

muru
quelle
7

Dieser Befehl lädt die Datei herunter und versucht, sie mit Root-Rechten auszuführen.

Barafu Albino
quelle
3
Vielen Dank, aber was ist die -EOption und -am Ende des Kommandos?
Mr.Y
5
@Youssef behält -EUmgebungsvariablen bei (z. B. Variablen für Proxy-Einstellungen) und -weist bash an, Befehle von der Standardeingabe, dh der Pipe, zu lesen.
Muru