Ich habe eine Funktion in meinem ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
Der übliche Aufruf ist findPort 3306
.
Ich möchte es mit erhöhten Rechten ausführen. Aber ich bekomme "Befehl nicht gefunden".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Ich nehme an, der Grund dafür ist, dass der Root-Benutzer entweder als nicht interaktive Shell ausgeführt wird (bezieht sich also nicht auf eine .zshrc-Datei) oder auf eine andere .zshrc
.
Ich habe ähnliche Fragen bezüglich alias
, aber keine Frage bezüglich benutzerdefinierter Funktionen gesehen. Die Antworten auf dieses Problem betreffen alias
das Hinzufügen eines Alias zu ~/.zshrc
:
alias sudo='nocorrect sudo '
Oder vielleicht:
alias sudo='sudo '
Ich habe beide Lösungen ausprobiert und das Problem besteht immer noch (ja, ich habe die Shell neu gestartet).
Ich habe auch versucht, auszuführen, sudo chsh
um sicherzustellen, dass meine Root-Shell unter läuft zsh
. Keine dieser Lösungen behebt das Problem "Befehl nicht gefunden".
Gibt es eine Möglichkeit, meine benutzerdefinierten Funktionen unter sudo auszuführen?