~ / .bashrc n'est pas fourni dans une nouvelle fenêtre lxterminal

J'ai ajouté quelques lignes à mon ~ / .bashrc comme

export JAVA_HOME=/opt/jdk1.6.0_22 

Je l'ai acheté:

 $ source ~/.bashrc $ env | grep 'JAVA' JAVA_HOME=/opt/jdk1.6.0_22 

Ensuite, j'ai créé un script basic bash sous un dossier appelé scripts dans ma maison:

 #!/bin/bash echo 'start' echo $(env | grep HOME) echo $(env | grep LOGNAME) echo $(env | grep JAVA) echo 'exiting' sleep 5 exit 

Maintenant, si je le lance directement, je reçois le résultat attendu

 $ cd ~/scripts $ bash 'myScript.sh' start HOME=/home/foo/.config LOGNAME=foo JAVA_HOME=/opt/jdk1.6.0_22 exiting 

Cependant, je dois l'appeler d'une manière différente à l'aide de la commande suivante, et malheureusement, cela ne fonctionne pas de la même manière:

 $ lxterminal --command "bash /home/foo/scripts/myScript.sh" start HOME=/home/foo XDG_CONFIG_HOME=/home/foo/.config LOGNAME=foo exiting 

Il semble que .bashrc ne provient pas de cette façon. J'ai essayé avec .profile aussi, mais avec le même résultat. Existe-t-il un autre fichier issu de lxterminal lorsqu'il est appelé avec la commande ci-dessus?

La raison pour laquelle j'ai besoin de cette commande, c'est parce que je souhaite lancer ces mêmes scripts via des liens / lanceurs que j'ai ajoutés au menu de démarrage et qu'ils doivent être exécutés sur une fenêtre lxterminal.

Essayez de forcer bash à utiliser le mode interactif:

 lxterminal --command "bash -i /home/foo/scripts/myScript.sh" 

Cela se produit parce que:

  • ~/.bashrc est lu en mode interactif;

  • ~/.bash_profile , ~/.bash_login et ~/.profile sont lus en mode connexion.

Voir Invocation chez man bash .