
Ich versuche, eine Anwendung zu erstellen, die über die Befehlszeile funktioniert. Zum Beispiel application -h
. Also füge ich ein Bash-Skript in mein ein, /usr/local/bin/
das Folgendes ausführt: cd /path/to/application
Dann in der nächsten Zeile ./Main.py
. Aber wenn ich den Befehl ausführe, empfängt es nicht die -h
. Wenn ich jedoch einen Alias in mein .bashrc
mit denselben Befehlen einstelle, funktioniert es einwandfrei. Wie kann ich das Bash-Skript ändern, damit es mit Parametern funktioniert? Und warum funktioniert der Alias, aber nicht das Skript?
Antwort1
Weil das Shell-Skript nicht wissen kann, dass Sie Argumente an Ihr Python-Skript übergeben möchten. Verwenden Sie
./Main.py "$@"
Verwenden Sie auch nicht cd
. Es ist redundant. Verwenden Sie einfach den vollständigen Pfad zu ./Main.py oder vermeiden Sie besser ein Wrapper-Skript ganz, sofern es nicht unbedingt erforderlich ist. Legen Sie ./Main.py einfach in eines der Verzeichnisse, die Teil Ihrer $PATH-Variable sind, und rufen Sie Ihr Python-Skript direkt auf.
Der Hauptpunkt ist, dass das, was Sie versuchen, wahrscheinlich falsch und unnötig ist, und dass es bessere Möglichkeiten gibt, es zu tun