J'utilise un Shell script.sh
qui est censé ouvrir le terminal puis exécuter certaines commandes dans ce terminal ouvert. Ce qui se passe, c'est que le terminal démarre mais les commandes suivantes ne sont pas exécutées dans ce terminal. Si quelqu'un peut me dire comment après avoir ouvert le terminal via ce script.sh
pour y exécuter d'autres commandes. C'est mon script.sh
fichier:
#!/bin/bash
gksu -u userA /usr/bin/gnome-terminal PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts
donc la première commande gksu -u userA /usr/bin/gnome-terminal
ouvre une instance de terminal, je demande comment exécuter les deux commandes suivantes PACKAGE_PATH=/home/userA/package1
et cd /home/userA/scripts
dans cette instance de terminal ouverte en utilisant le script.sh
ÉDITER:
après avoir appliqué la suggestion de muru, voici ce que j'ai utilisé: 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'
mais il n'est pas exécuté dans la même séquence que je le mets.
La première ligne apparaît dans le terminal est un message qui se trouve dans variables.sh (bien que ce devrait être la troisième commande à exécuter) et l'autre chose est qu'aucune des variables qui devraient être définies en utilisant ce varset.sh
est défini, par exemple lorsque j'utilise echo $ var1 (qui se trouve dans variables.sh) n'affiche rien ce qui signifie que les variables ne sont pas définies la seule chose qui fonctionne dans variables.sh est le message d'écho affiché.
La deuxième ligne qui apparaît dans le répertoire est le répertoire de travail du terminal qui est défini sur /home/userA/scripts
.
La troisième chose est que cette commande PACKAGE_PATH=PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH
qui définit la variable $ PACKAGE_PATH ne fonctionne pas.
Donc, si quelqu'un peut vous conseiller sur la façon d'exécuter cette commande dans cette séquence et de définir les variables sur la première commande et les variables dans varset.sh
Fichier shell.
J'avais suggéré ce qui suit pour garder le Shell ouvert:
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'
Cependant, le dernier bash
ne sera pas affecté par l'affectation de $PACKAGE_PATH
ou de source varset.sh
s'ils ne sont pas exportés.
Donc:
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'
avec varset.sh
exporté devrait faire l'affaire.