Откройте новый терминал и исходные сценарии

Я хочу записать сценарий, чтобы активировать виртуальную среду и выполнить мой сервер для проекта Django в новом терминале. Мой startProject.sh:

#!/bin/bash
source virtualenv/bin/activate
python manage.py runserver

И, я могу запустить этот скрипт на своем текущем терминале:

source startProject.sh

Я хочу сделать это в новом терминале, открытом сценарием.

#!/bin/bash
gnome-terminal --working-directory=/home/myname/project -x 'source startProject.sh'

Я попробовал это также.

#!/bin/bash
gnome-terminal --working-directory=/home/myname/project -x '#!/bin/bash\n source startProject.sh'

Оба не работают. Почему? Я считал другие вопросы, но я все еще не получил его. Я - новичок, поэтому не примите опыт.

2
задан 10 April 2018 в 06:23

1 ответ

Согласно моему опыту команда должна быть:

gnome-terminal --working-directory='/home/<user>/project' -x bash -c "source startProject.sh; exec bash"

Примечания:

  • путь --working-directory='/home/<user>/project' включается с метками одинарной кавычки в случае, если он содержит некоторые специальные символы как пробелы, и т.д.

  • средства опции -x: выполняются - остаток от командной строки в терминале.

  • И наша команда bash -c "<commands>". Это означает, что мы выполняем новое bash оболочка, которая должна выполнить приблизительно -c "<commands>".

  • у Нас есть два разделенных (точкой с запятой ; == new line) <commands>.

  • первая команда source startProject.sh будет получать файл .

  • сценария, вторая команда exec bash имеет значение - остаются открытыми ток gnome-terminal окно. Существуют другой возможные подходы , чтобы сделать это. В текущем случае команда exec будет заменять изображение текущего процесса новым образом процесса - другими словами, это 'уничтожит' текущий процесс и выполнит новое (bash) под текущим PID.

Дополнительные материалы для чтения:

1
ответ дан 2 December 2019 в 04:47

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

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