То, как работать, терминал гнома-e “источник активируются” без разрешения, отклонило ошибку?

Как я могу выполнить "источник, активируются" из сценария удара как-e аргумент терминалу гнома?

gnome-terminal -e ". /path/to/virtualenv/bin/activate"

Когда я выполню эту команду, я ожидаю новый терминал, который имеет команду source activate уже выполненный. Но вместо этого, я получаю ошибку и в текущем окне и в недавно созданном: Ошибка: Не удалось выполнить дочерний процесс "." (Отклоненное разрешение)

Я чувствую, что делаю простой контроль или неправильно понимаю-e аргумент, возможно.

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

0
задан 18 August 2016 в 22:50

1 ответ

Поэтому . (source) встроенная оболочкой т.е. определенная для оболочки команда, не внешняя. Необходимо выполнить его в оболочке; Без оболочки, gnome-terminal пытается выполнить литерал . команда с /path/to/virtualenv/bin/activate как ее аргумент, ведя к ошибке денье разрешения.

необходимо породить интерактивную оболочку, чтобы сделать определение источника и породить другую интерактивную оболочку впоследствии:

gnome-terminal -e 'bash -ic ". /path/to/virtualenv/bin/activate && bash"'

Как Вы пытающийся инициировать виртуальную среду, Вы могли бы хотеть установить --rcfile опция вместо этого, более чистый подход, но очевидный протест состоит в том, что общие файлы /etc/bash.bashrc и ~/.bashrc запуска сессии не читаются:

gnome-terminal -e 'bash --rcfile /path/to/virtualenv/bin/activate'
2
ответ дан 28 September 2019 в 16:36

Другие вопросы по тегам:

Похожие вопросы: