How to make custom alias in ~.bash_profile work on F10 86_64

Patrick O'Callaghan pocallaghan at gmail.com
Mon Dec 1 16:22:57 UTC 2008


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 at 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 at bree:~] alias foo='ls -ld'
> > [poc at bree:~] foo
> > drwxr-xr-x 236 poc poc 20480 2008-12-01 01:07 .
> > [poc at bree:~] bash
> > [poc at 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




More information about the fedora-list mailing list