Изменить каталог из скрипта Python для вызова оболочки - PullRequest
0 голосов
/ 10 сентября 2018

Я хотел бы создать скрипт на python, который может манипулировать состоянием вызывающей его оболочки bash, особенно его рабочего каталога для начала.

С помощью os.chdir или os.system("ls ..") вы можете только изменить путь к интерпретаторам, но как тогда применить изменения комментариев к вызывающему скрипту?

Спасибо за любую подсказку!

1 Ответ

0 голосов
/ 10 сентября 2018

Вы не можете сделать это напрямую из python, поскольку дочерний процесс никогда не может изменить среду своего родительского процесса.

Но вы можете создать сценарий оболочки, который вы исходите из вашей оболочки, т.е. он выполняется в том же процессе, и в этом сценарии вы будете вызывать python и использовать его вывод в качестве имени каталог до cd до:

/home/choroba $ cat 1.sh
cd "$(python -c 'print ".."')"
/home/choroba $ . 1.sh
/home $
...