
Ich möchte ein Skript ausführen, aber das Skript enthält einige cd
s, also muss ich es so ausführen
. /scriptfile
Das funktioniert, aber ich habe auch einige sudo
s im Skript. Obwohl alles funktioniert, wollte ich versuchen, das gesamte Skript mit auszuführen, sudo
damit ich alle sudo
s 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 source
ist 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 scriptfile
im 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 su
vorher, dann kannst du einfach laufen./scriptfile