я пытаюсь создать приложение, которое будет работать из командной строки. Например приложение -h
. Поэтому я помещаю сценарий bash в свой / usr / local / bin /
, который выполняет cd / path / to / application
Затем в следующей строке ./ Main.py
. Но если я выполню команду, она не получит -h
. Однако, если я сделаю псевдоним в моем .bashrc
с теми же командами, он будет работать нормально. Как мне изменить сценарий bash для работы с параметрами? И почему псевдоним работает, а скрипт не работает?
Поскольку сценарий оболочки не имеет никакого способа знать, что Вы хотите передать аргументы своему сценарию Python. Используйте
./Main.py "$@"
, Также не используют cd
. Это избыточно. Просто используйте полный путь для./Main.py или еще лучше постарайтесь не иметь сценарий обертки в целом, если не необходимо. Просто помещенный./Main.py в один из каталогов, которые являются частью Вашей переменной $PATH и называют Ваш сценарий Python непосредственно.
основной момент - то, что то, что Вы пытаетесь сделать, является, вероятно, неправильным и ненужным, и существуют лучшие способы сделать это