Wie kann ich Parameter an ein Python-Skript übergeben, wenn ich es mit einem Bash-Skript ausführe?

Wie kann ich Parameter an ein Python-Skript übergeben, wenn ich es mit einem Bash-Skript ausführe?

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 .bashrcmit 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

verwandte Informationen