/ / zsh Warnung vor dem Ausführen der Datei - zsh

zsh Warnung vor dem Ausführen der Datei - zsh

Zsh

Ich stelle häufig fest, dass ich versehentlich Python-Dateien als Shell-Skripte ausführte, z. $ ./test.py

Dies kann viel Schaden anrichten, wenn am Anfang der Datei keine Shebang-Zeile vorhanden ist. Daher möchte ich, dass zsh eine Warnung dazu ausgibt.

Existiert diese Funktionalität bereits irgendwo?

Wenn nicht, denke ich darüber nach accept-line Gibt es einen spezifischeren Weg, um dies umzusetzen, aber dies scheint eine Gesamtlösung zu sein?

Antworten:

3 für Antwort № 1

Sie können Suffix-Aliase verwenden, um dies sicherzustellen .py Dateien werden von Python ausgeführt:

alias -s py="/usr/bin/env python"

Wenn Sie jetzt den Befehl eingeben, der auf endet .py Auf deiner Kommandozeile wird es mit ausgeführt /usr/bin/env python.

Hinweis: Es ist egal, ob die Datei ausführbar ist oder nicht. Wenn Sie dies auf ausführbare Dateien beschränken möchten .py Dateien können Sie eine Funktion verwenden:

runxpy () {
if [[ -x "$1" ]] ; then
/usr/bin/env python "$@"
else
"$@"
fi
}
alias -s py=runxpy

Eine Einschränkung ist natürlich, dass die fraglichen Dateien die haben müssen .py Suffix. Ein weiterer Grund ist, dass eine vorhandene #!-line wird ignoriert, dies könnte jedoch durch Erweitern behoben werden runxpy die erste Zeile zu analysieren, anstatt nur zu verwenden /usr/bin/python jedes Mal.


Verwandte Fragen
Bemerkungen
Einen Kommentar hinzufügen