On Mon, 2008-12-01 at 16:13 +0100, Henk Breimer wrote:
On Mon, 01 Dec 2008 08:40:43 -0430
"Patrick O'Callaghan" <pocallaghan(a)gmail.com> wrote:
> On Mon, 2008-12-01 at 11:27 +0000, Steve wrote:
> > > Unfortunately, exporting aliases is not supported by bash (neither
> > in
> > > /etc/profile nor ~/.bash_profile) :-(
> >
> > No ! that's not right ! Of course it is supported. Aliases can be
> > defined anywhere /etc/bashrc, /etc/profile, /etc/profile.d/*,
> > ~/.bashrc, ~/.bash-profile ie: in any of the rc files.
>
> These files are 'eval'ed, so their contents are executed in the
> context of the current shell.
>
> A simple test shows that aliases are not exported:
>
> [poc@bree:~] alias foo='ls -ld'
> [poc@bree:~] foo
> drwxr-xr-x 236 poc poc 20480 2008-12-01 01:07 .
> [poc@bree:~] bash
> [poc@bree:~] foo
> bash: foo: command not found
>
> poc
>
>
After puting alias commands in bash.rc or profile.rc you have to run
"bash" (whithout"") at the prompt. Then the aliases work
You can do that if you want, but you'll be executing an extra shell for
no reason, i.e. you're running a new shell as a child of the original
shell.
Better is "exec bash" (which replaces the current shell with a new
image, including initialization), or ". .bashrc" (which makes the
current shell re-evaluate the contents of .bashrc). I tend to prefer the
first as it's easier to type and gets all the initialization stuff in
one go.
It's essential to understand this stuff if you ever want to do any Shell
programming.
poc