Ich versuche, Befehle als ein anderer Benutzer auszuführen und die Eingabe als diesen Benutzer zu lesen. Aus irgendeinem Grund pausiert das Skript nicht auf dem read
-Befehl, ich bin mir nicht sicher, warum. Hier ist ein Beispiel für das Skript:
Irgendwelche Ideen, warum dies nicht auf read name
oder read email
?
read
liest von stdin, und bash
erbt seine stdin von sudo, das vom heredoc kommt. Wenn Sie möchten, dass es von woanders kommt, müssen Sie explizit sein. Zum Beispiel:
Dies funktioniert jedoch nicht mit sudo, da sudo die nicht standardmäßigen Dateideskriptoren schließt. Aber sudo schließt stderr nicht. Wenn Sie also diesen Dateideskriptor wiederverwenden können, können Sie Folgendes tun:
%Vor%Aber es ist wahrscheinlich viel sicherer zu tun:
%Vor%Kannst du dieses Skript überprüfen, ob es als sudo läuft, und wenn nicht, exec selbst mit sudo?
%Vor%Tags und Links bash