Я выполняю оболочку 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
файл оболочки.
Я предложил следующее в качестве способа сохранить оболочку открытой:
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
экспортируемый должен добиться цели.