Проблема в том, что вы не передаете путь к программе на python. Программа на python не знает псевдонимов bash, и bash будет расширять псевдонимы только тогда, когда она интерпретирует токен как команду.
Когда bash читает python androPyTool.py -all -csv EXPORTCSV.csv -s mycd
Он интерпретирует python
как команду, а все остальные токены, разделенные пробелом, являются аргументами, которые будут переданы в python. Затем Python вызывает androPyTool.py
и передает последующие аргументы этому сценарию. Таким образом, программа получает буквально mycd
в качестве аргумента для -s
.
Более того, даже если mycd
развернуто, это не будет правильным аргументом для -s
. androPyTool.py
ожидает только /path/to/apks
, а не cd /path/to/apks/
.
Я не думаю, что использование псевдонима в этом сценарии имеет большой смысл. Это на самом деле делает сценарий труднее читать и понимать. Если вы хотите обернуть команду, я рекомендую определить функцию, и иногда вы можете использовать расширение переменных (но это смешивает код и данные, которые могут привести к проблемам). РЕДАКТИРОВАТЬ: Как было указано в комментариях, псевдонимы отключены для сценариев.
Наконец, есть некоторые другие подозрительные проблемы с вашим скриптом. Главным образом, почему вы .bashrc
? Если этот сценарий запущен вами в среде вашего пользователя, .bashrc
будет уже получен, и вам не нужно его повторно запрашивать. С другой стороны, если это не предназначено для запуска в вашей среде, и в файле .bashrc
есть что-то, что вам нужно в вашем скрипте, я рекомендую извлечь это и ничего больше.
Но самая непосредственная проблема, которую я вижу, это то, что поиск .bashrc
после изменения пути рискует перезаписать изменения в PATH
, которые вы только что внесли. В зависимости от содержимого файла .bashrc
, его получение может быть не идемпотентным, что означает, что его повторный запуск может иметь побочные эффекты. Наконец, все что угодно может быть добавлено в этот файл .bashrc
в будущем, так как это то, для чего оно. Так что теперь ваш сценарий может зависеть от того, что может измениться. Это открывает возможность неожиданного появления ошибок в вашем скрипте.