![Wie kann ich Parameter an ein Python-Skript übergeben, wenn ich es mit einem Bash-Skript ausführe?](https://rvso.com/image/1000368/Wie%20kann%20ich%20Parameter%20an%20ein%20Python-Skript%20%C3%BCbergeben%2C%20wenn%20ich%20es%20mit%20einem%20Bash-Skript%20ausf%C3%BChre%3F%20.png)
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