Im Moment habe ich einen Einzeiler wie diesen:
curl -fsSL http://git.io/vvZMn | bash
Es lädt ein Skript herunter und übergibt es als stdin-Datei an bash. Ich möchte dieses Skript mit zusätzlichen Argumenten ausführen print
.
Vielleicht so etwas?
curl -fsSL http://git.io/vvZMn | bash -- print
Das funktioniert aber nicht.
print
Sie hier zu tun? Anzeigen der ausgeführten Befehle? Wenn ja, versuchen Sie esbash -x
. Hinweis: Diesecurl | bash
Routine ist eine massive Sicherheitslücke. Sie sehen erst, was ausgeführt wird, wenn Ihr Server pwned wurde.Antworten:
Ich glaube, was Sie suchen, ist die
-s
Option. Mit-s
können Sie Argumente an das Skript übergeben.Als Dummy-Beispiel, um dies zu veranschaulichen:
Hier können Sie sehen, dass das auf stdin bereitgestellte Skript den Positionsparameter erhält
Print
. Ihr Skript nimmt ein-u UUID
Argument und das kann auch berücksichtigt werden:Also in Ihrem Fall:
Oder,
Wie Stephen Harris betonte, ist das Herunterladen und Ausführen eines Skripts ein Sicherheitsbedenken.
quelle
Wenn Ihr System hat
/dev/stdin
, können Sie verwendenMach das nicht :
Wenn Sie verwenden möchten
--
, gehen Sie folgendermaßen vor:quelle