Hamish schrieb:
Dylan:
I have the following line in my .bashrc:

alias l='ls -lh --color=auto'

After I start a GRASS session this alias seems to go away. Is
there anyway to respect user customization (i.e. .bashrc)
when initializing GRASS?
Or is this a user-related error?

GRASS's Init.sh does special tricks with $HOME and $bashrc so you can
save your command history, etc., for each mapset.

Then it tries to do:
  echo "test -r ~/.alias && . ~/.alias" >> "$bashrc"

but at that point "$HOME" is already redefined so the real
/home/you/.alias is not the one it looks for there?
Fix with "s/~/$USERHOME/" ??

(that bit of the code is a mess, I don't like to touch it)
(history file better handled with $HISTFILE ? see g.mapset warning)


Eric:
What happens if you copy your alias into ~/.grass.bashrc?

yes that works.


FWIW, my .grass.bashrc has:

.. /home/hamish/.alias
export HISTSIZE=3000

# first GRASS instance gets set a low priority (because we can)
NUMGRASSES=`pgrep -c Init.sh`
if [ "$NUMGRASSES" -le 1 ] ; then
   renice +17 -p $$
else
   NICENESS=`echo $NUMGRASSES | awk '{printf("%0.f", 20 / $1)}'`
   renice +$NICENESS -p $$
fi



Hamish

Hamish,
why does the test refer to .alias? As I wrote in the attached mail the bash-alias-file should be .bash_aliases

And what I don't understand either, not even if in the .grass.bashrc is defined

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

the aliases work in grass.

... oh now I understand, do I? Do I have to change this entry in

if [ -f $USERHOME/.bash_aliases ]; then
    . $USERHOME/.bash_aliases
fi

???

No... does not work ;o(

I have this solution to change the Init.sh (see below). But it isn't a good one. I hope for a better one with only one alias-definition-file.

Greets to the other side of the globe
cheers
Philipp


Philipp Steigenberger wrote at 03/04/08 11:10
Subject: [GRASS-user] .bash_aliases doesn't work in GRASS & Start without g.gui
Hi

I noticed that my .bash_aliases is not affected when GRASS starts. I have a .grass.bashrc which is almost the same as the regular one. I want to have only one aliases-file, therefore I don't want to copy the aliases in the .grass.bashrc.

in the Init.sh in line 939 the test is

    echo "test -r ~/.alias && . ~/.alias" >> "$bashrc"

but the aliases files name which the .bashrc suggests to use is .bash_aliases

# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.

My solution to get all my aliases is to change the Init.sh every time I update my svn in line 948 where I insert the following lines:

 if [ -r "$USERHOME/.bash_aliases" ]
    then
        cat "$USERHOME/.bash_aliases" >> "$bashrc"
    fi

Is there another way?

Maybe somebody may change the Init.sh for better acting

[...]


_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to