![Как передать параметры скрипту Python при запуске его с помощью скрипта Bash?](https://rvso.com/image/1000368/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%83%20Python%20%D0%BF%D1%80%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B5%20%D0%B5%D0%B3%D0%BE%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0%20Bash%3F%20.png)
Я пытаюсь создать приложение, которое будет работать из командной строки. Например application -h
. Поэтому я помещаю в my скрипт bash, /usr/local/bin/
который делает cd /path/to/application
Then на следующей строке ./Main.py
. Но если я выполняю команду it, он не получает -h
. Однако, если я создаю псевдоним в my .bashrc
с теми же командами, он работает просто отлично. Как мне изменить скрипт bash для работы с параметрами? И почему псевдоним работает, а скрипт нет?
решение1
Потому что скрипт оболочки не может знать, что вы хотите передать аргументы скрипту Python. Используйте
./Main.py "$@"
Также не используйте cd
. Это избыточно. Просто используйте полный путь к ./Main.py или, что еще лучше, вообще избегайте скрипта-обертки, если в этом нет необходимости. Просто поместите ./Main.py в один из каталогов, которые являются частью вашей переменной $PATH, и вызовите ваш скрипт Python напрямую.
Главное то, что то, что вы пытаетесь сделать, вероятно, неправильно и ненужно, и есть лучшие способы сделать это.