как к команде выполнения в уже открытом терминале через сценарий оболочки

Я выполняю оболочку script.sh который, как предполагается, открывает терминал и затем выполняет некоторые команды в этом открытом терминале. То, что происходит, - то, что терминал запускается, но следующие команды не выполняются в этом терминале. Если кто-либо может сказать мне как после openening терминал через это script.sh выполнять в нем некоторые другие команды. Это, мой script.sh файл:

#!/bin/bash
gksu -u userA /usr/bin/gnome-terminal PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts

так первая команда gksu -u userA /usr/bin/gnome-terminal открывает терминальный экземпляр, я спрашиваю, как выполнить два после команд PACKAGE_PATH=/home/userA/package1 и cd /home/userA/scripts в этом открытом терминальном экземпляре с помощью script.sh

Править:

после применения предложения muru это - то, что я использовал: gnome-terminal -x sudo -u userA bash -c 'PPACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; cd /home/userA/scripts; source varset.sh; bash' но это не выполняется в той же последовательности, я поместил его.

Первая строка появляется в терминале, сообщение, которое найдено в variables.sh (хотя это должно быть третьей командой для выполнения), и другая вещь состоит в том, что ни одна из переменных, которые должны быть установлены с помощью этого varset.sh установлен, например, когда я использую $var1 эха (который найден в variables.sh), дисплей ничто, что означает, что переменные не установлены единственная вещь, которая работает в variables.sh, отображенное сообщение эха.

Вторая строка, которая появляется в каталог, является терминальным рабочим каталогом, который установлен на /home/userA/scripts.

Третья вещь состоит в том что эта команда PACKAGE_PATH=PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH то, которое устанавливает переменную $PACKAGE_PATH, не работает.

Таким образом, если кто-либо мог бы советовать, как выполнить эту команду в этой последовательности и установить переменные на первой команде и переменные в varset.sh файл оболочки.

1
задан 23 September 2014 в 10:27

1 ответ

Я предложил следующее в качестве способа сохранить оболочку открытой:

gnome-terminal -x sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

Однако последнее bash не будет затронуто присвоением $PACKAGE_PATH или от source varset.sh, если они не будут экспортироваться.

Так:

gnome-terminal -x sudo -u userA bash -c 'export PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

с varset.sh экспортируемый должен добиться цели.

1
ответ дан 11 November 2019 в 12:35

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

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