How can I check in my bashrc if an alias was already set

Kumar Alok picture Kumar Alok · Mar 20, 2012 · Viewed 18.8k times · Source

How can I check in my .bashrc if an alias was already set.

When I source a .bashrc file, which has a function name, say fun, and my current environment has an alias as fun also.

I tried unalias fun, but that will give me an error that fun not found when my environment wont have that alias already.

So in my .bashrc, in my fun function I want to check if alias was set, then unalias that.

Answer

mitchnull picture mitchnull · Mar 20, 2012

If you just want to make sure that the alias doesn't exist, just unalias it and redirect its error to /dev/null like this:

unalias foo 2>/dev/null

You can check if an alias is set with something like this:

alias foo >/dev/null 2>&1 && echo "foo is set as an alias" || echo "foo is not an alias"

As stated in the manpage:

For each name in the argument list for which no  value  is  sup-
plied,  the  name  and  value  of  the  alias is printed.  Alias
returns true unless a name is given for which no alias has  been
defined.