Was machen diese Parameter?

1173
user419758

Was bedeuten die Schalter und Parameter dieses Befehls?

exec su -s /bin/sh -c 'exec "$0" "$@"' root -- /opt/nsq/bin/nsqd 

Speziell das --Teil und was exec "$0" "$@"soll es tun.

Ich weiß, $0legt eine Schleife für das Skript fest, damit es weiter läuft.

Sie können den /opt/nsq/bin/nsqdTeil ignorieren . Dies ist die App, die ich betreibe.

0

1 Antwort auf die Frage

0
K7AAY
exec 

Der Befehl, su, ersetzt die Shell, ohne einen neuen Prozess zu erstellen.

sudo -s /bin/sh -c 

Der Ersatzbenutzer führt die angegebene Shell / bin / sh aus und führt den folgenden Befehl aus.

exec "$0" "$@" 

Führen Sie den Befehl aus $0, den Namen des Skripts (Ihre erste Variable /opt/nsq/bin/nsqd).

"$@" 

mit allen Argumenten unter Verwendung der entsprechenden Anführungszeichen

-- 

Beschränkt die Optionsliste. Alles, was folgt, auch wenn sie mit einem Hypen beginnen, wird als Operand betrachtet. Zum Beispiel sort -- -rliest aus der Datei mit dem Namen -rdes Versuchens ‚-r‘ als Option stattdessen zu verwenden.

Du bist unglaublich. Ich bekomme das Bild und es hat wirklich geholfen, aber ich habe noch ein paar kleine Fragen. Wenn es in einem Init-Skript läuft, muss ich es in diesem Fall nicht verwenden, es sei denn, das Init-Skript selbst erhält Parameter von außen. Und noch eine Sache, die ich etwas schwer zu verstehen finde Wann immer ich sie benutze - meistens zu Skripting-Zwecken und im Grunde genommen ignoriert sie einfach alle Parameter danach? Warum sollte ich es verwenden wollen? Ich kann einfach niemals Parameter verwenden. Und heißt dieser Parameter? Ich konnte nichts wirklich Informatives darüber finden. Vielen Dank! user419758 vor 9 Jahren 0
Hey, danke für die Weiterverfolgung. Wenn Sie weitere Fragen zu diesem Problem haben, klicken Sie auf den Link "Bearbeiten" unter der ursprünglichen Frage und überarbeiten Sie die ursprüngliche Frage gemäß den hier geltenden Hausregeln. Auf diese Weise wird Ihre Frage verbessert und verfeinert, und wenn andere sie betrachten, werden sie das Problem besser verstehen. K7AAY vor 9 Jahren 0