~ / .bashrc não é originado em uma nova janela lxterminal

3

Eu adicionei algumas linhas ao meu ~ / .bashrc como

export JAVA_HOME=/opt/jdk1.6.0_22

Eu obtive:

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

Em seguida, criei um script bash básico em uma pasta chamada scripts em minha casa:

#!/bin/bash

echo 'start'
echo $(env | grep HOME)
echo $(env | grep LOGNAME)
echo $(env | grep JAVA)
echo 'exiting'

sleep 5
exit

Agora, se eu inicio diretamente, recebo a saída esperada

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

No entanto, eu preciso chamá-lo de uma maneira diferente usando o seguinte comando e, infelizmente, ele não funciona da mesma maneira:

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

exiting

Parece que o .bashrc não é originado dessa maneira. Eu tentei com o .profile também, mas com o mesmo resultado. Existe outro arquivo originado pelo lxterminal quando chamado com o comando acima?

A razão pela qual eu preciso deste comando é porque eu quero lançar estes meus próprios scripts através de links / lançadores que adicionei ao menu iniciar e eles têm que ser executados em uma janela lxterminal.

    
por Luca Borrione 22.02.2012 / 13:06

1 resposta

4

Tente forçar bash a usar o modo interativo:

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

Isso acontece porque:

  • ~/.bashrc é lido no modo interativo;

  • ~/.bash_profile , ~/.bash_login e ~/.profile são lidos no modo de login.

Veja Invocação em homem bash .

    
por 22.02.2012 / 13:31