Wie kann ich ein Skript mit sudo ausführen? Ich erhalte die Meldung „.: Befehl nicht gefunden“

Wie kann ich ein Skript mit sudo ausführen? Ich erhalte die Meldung „.: Befehl nicht gefunden“

Ich möchte ein Skript ausführen, aber das Skript enthält einige cds, also muss ich es so ausführen

. /scriptfile

Das funktioniert, aber ich habe auch einige sudos im Skript. Obwohl alles funktioniert, wollte ich versuchen, das gesamte Skript mit auszuführen, sudodamit ich alle sudos aus der Skriptdatei entfernen kann.
Aber ich konnte Folgendes nicht ausführen (mit sudo)

sudo . /scriptfile

Wenn ich versuche zu rennen, bekomme ich

sudo: .: command not found  

Gibt es dafür eine Problemumgehung?

Antwort1

Du musst rennen

sudo ./scriptfile

Du versuchtest

sudo . /scriptfile

was aufgrund des Leerzeichens nach dem Punkt anders ist. .oder das Äquivalent sourceist ein Shell-Builtin, kein Befehl. Deshalb erzeugt der von Ihnen ausprobierte Befehl den Fehler sudo: .: command not found.

Notiz:

./scriptfile

führt die Datei mit dem Namen scriptfileim aktuellen Verzeichnis aus. Die Datei muss ausführbar sein.

. /scriptfile

wird die Datei als Quelle verwenden /scriptfile(denken Sie daran, dass dies hier ein absoluter Pfad ist). Die Datei muss hierfür nicht ausführbar sein, sie muss nur lesbar sein.

Antwort2

Lauf sudo suvorher, dann kannst du einfach laufen./scriptfile

verwandte Informationen