Выполнение alias'ов шела средствами Python

Работаю с модулем subprocess. При выполнении кода по типу:

subprocess.call('ls')

в консоль получаем ожидаемый вывод:

введите сюда описание изображения

задача была в том, чтобы также вызвать alias команды, например

subprocess.call('la')

который эвивалентен записи ls -A, но при таком раскладе интерпритатор выдаёт ошибку:

введите сюда описание изображения

В скрипте мне нужно вызывать именно alias'ы команд. Возможно ли это сделать средствами python? Или проще создать словарь со значениями alias'ов и команд, но тогда как передавать в subprocess аргументы, если я не знаю сколько дополнительных параметров будет у той или иной комманды (а это может быть и довольно громоздкий из нескольких строк сценарий)? Ай нид хэлп)


Ответы (1 шт):

Автор решения: aleksandr barakin

например, так:

$ python -c 'import subprocess,os; subprocess.call([os.environ["SHELL"],"-ic","la"])'

опции поддерживаются всеми posix-совместимыми оболочками:

  • -i — интерактивная сессия
  • -c команда — выполнить команду
→ Ссылка