LINUX.ORG.RU

Команда gnome-terminal не работает с source <PARTH>

 ,


0

1

Здравствуйте. Использую терминальную программу для обработки данных с метеорной станции https://globalmeteornetwork.org/wiki/index.php?title=Main_Page сложение кадров, составление мозаик, расчет радиантов, не суть…

Для ее активации нужно вводить в терминале:

cd source/RMS
source ~/vRMS/bin/activate

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

Первоначальный вариант скрипта:

#!/bin/bash
cd source/RMS
source ~/vRMS/bin/activate

Не работоспособен: в открывшемся окне терминала нет приглашения к вводу. Я не могу вводить команды для обработки данных! Начало строки должно быть таким: (vRMS) (base) vas@vas-desktop:~/source/RMS$ Позже я изменил код:

#!/bin/bash
gnome-terminal --working-directory=$HOME/source/RMS -x bash -c "source $HOME/vRMS/bin/activate; exec bash"

Терминал открывается в новой вкладке, в заданной директории, НО не проходит команда source $HOME/vRMS/bin/activate А именно: начало строки ввода имеет вид:

(base) vas@vas-desktop:~/source/RMS$ 

А должна:

(vRMS) (base) vas@vas-desktop:~/source/RMS$ 

Отсутствует (vRMS). Команды для обработки не принимаются! Пожалуйста, подскажите как сделать правильно? Если не затруднит, предоставьте актуальную информацию по команде gnome-terminal.

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

activate() {
  cd source/RMS
  source ~/vRMS/bin/activate
}

И вызывать через activate в терминале. Можно пойти дальше, и вызывать её сразу после объявления в этом же .bashrc.

grazor ★★
()
Последнее исправление: grazor (всего исправлений: 1)

А во втором варианте, я подозреваю, что может быть проблема в $HOME, попробуй прописать полный путь до файла

#!/bin/bash
gnome-terminal --working-directory=/home/vas199228/source/RMS -x bash -c "source /home/vas199228/vRMS/bin/activate; exec bash"

Но само такое решение выглядит большим костылём, не надо так делать, если не уверен, что это ровно то, что тебе нужно

grazor ★★
()
Ответ на: комментарий от grazor

проблема в $HOME

Прописал полный путь. То же самое. Отсутствует (vRMS).

vas199228
() автор топика
Ответ на: комментарий от grazor

вызывать через activate

В этом случае окно терминала не позволяет вводить команды.

vas199228
() автор топика
Ответ на: комментарий от grazor

Второй вариант в приоритете.

Далее лучше рассматривать второй вариант. Он на 1/2 работает.

vas199228
() автор топика

-x

Вряд ли это поможет в твоей проблеме, но тем не менее:

This option is deprecated: use -- instead. For example, instead of gnome-terminal -x python3 -q, prefer to use gnome-terminal -- python3 -q.
Im_not_a_robot ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Не работает. Окно терминала не позволяет вводить команды

vas199228
() автор топика

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

Не надо делать вид, что более менее разбираешься, если это не так. Если не разбираешься - не надо самому решать, какие детали существенны, а какие нет, опиши детально что куда нажимал и что получилось, без недосказанностей.

Первоначальный вариант скрипта:

Не работоспособен: в открывшемся окне терминала нет приглашения к вводу. Я не могу вводить команды для обработки данных!

Ты написал на бумажке скрипт и от этого (от написания букв на бумажке) открылось окно терминала без приглашения к вводу? Так? Если нет - укажи конкретно, что было сделано. Какие кнопки клавиатуры (и может быть мыши) нажимались, в каком порядке.

Если не затруднит, предоставьте актуальную информацию по команде gnome-terminal.

С чего ты взял, что эта «команда» у тебя вообще влияет (или должна влиять) на происходящее? Опиши свои умозаключения, после которых ты пришёл к выводу, что надо куда-то вписать эти два слова через дефис.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Я и не делаю вид. Мне нужно корректно запустить скрипт и все. Если знаете что надо делать, подскажите.

vas199228
() автор топика
Ответ на: комментарий от firkax

Ты написал на бумажке скрипт и от этого (от написания букв на бумажке) открылось окно терминала без приглашения к вводу?

Нет, на картонке. Фломастером.

vas199228
() автор топика
Ответ на: комментарий от vas199228

Прекращай цирк, опиши нормально что ты делал. И нет, тебе не скрипт надо запустить, а какую-то твою программу. «Запуск скрипта» это твоя (пока неработающая) попытка решить задачу. Впрочем, что ты под «запуском скрипта» понимаешь - ты тоже не описал. Если что, никакие окна терминалов от запуска скрипта не должны открываться, ты делал очевидно что-то другое, но не говоришь что.

firkax ★★★★★
()

Создайте файл по пути $HOME/source/RMS/bashrc (для примера, можно создать его где угодно) с содержимым:

source $HOME/.bashrc
cd source/RMS
source ~/vRMS/bin/activate

После чего запускайте gnome-terminal -- bash --rcfile $HOME/source/rms/bashrc

deadNightTiger ★★★★★
()
Ответ на: комментарий от deadNightTiger

Спасибо вам ОГРОМНОЕ!

Все завелось! Спасибо за конструктивный совет!

vas199228
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.