Ответ 1
Передайте параметр -t
в ssh
.
Принудительное распределение псевдо-tty. Это может быть использовано для выполнения произвольных программ на основе экрана на удаленной машине, что может быть очень полезно, например. при реализации услуг меню. Множество опций -t принудительно назначают tty, даже если ssh не имеет локального tty.
По умолчанию запуск ssh host command
не выделяет правильное псевдо-tty, что делает невозможным выполнение любой программы, использующей процедуры вывода терминала, такие как интерпретаторы редактирования строк и т.д.
Следовательно, ваш однострочный шрифт может быть:
ssh -t -i mysite.pem [email protected] python /usr/local/myapp/manage.py shell
Можно, но не нужно обертывать другой слой bash, как вы. Помните, что ssh host command
фактически передает command
в качестве строки в оболочку по умолчанию пользователя (поэтому вы можете делать такие вещи, как cd
), поэтому я не могу придумать, почему вам нужно будет запустите bash
в пределах bash
.