with passing parameter example create bashrc argument aliasing bash

aliasing - passing - ¿Cómo puedo verificar en mi bashrc si ya se estableció un alias?



create alias linux (6)

Desde here

if alias <your_alias_name> 2>/dev/null; then do_something else do_another_thing; fi

¿Cómo puedo verificar en mi bashrc si ya se estableció un alias?

Cuando obtengo un archivo bashrc, que tiene un nombre de función, di fun , y mi entorno actual también tiene un alias tan divertido .

Intenté unalias fun, pero eso me dará un error que no encontré cuando mi entorno ya no tenga ese alias.

Así que en mi bashrc, en mi función divertida quiero comprobar si el alias fue establecido, y luego unalias.


Puede usar type para ver si existe el comando, o si es un alias o no.

Devolverá el estado de error, si no se encuentra el comando.

Por ejemplo, estoy definiendo el siguiente alias:

$ alias foo="printf"

A continuación, compruebe los siguientes escenarios:

$ type foo >/dev/null && echo Command found. || echo Command not found. Command found.

o específicamente para alias:

$ alias foo && echo Alias exists || echo Alias does not exist.

o para verificar si es un alias o un comando regular:

$ grep alias <(type foo) && echo It is alias. || echo It is not.

Para verificar si el alias está definido en sus archivos rc , debe verificarse manualmente, por ejemplo:

[ "$(grep ''^alias foo='' ~/.bash* ~/.profile /etc/bash* /etc/profile)" ] && echo Exists. || echo Not there.


Puede usar lo siguiente para simplificar su archivo bashrc:

  1. Asegúrese de que existe un alias.
  2. Unalias lo.
  3. Define la función

alias fun='''' unalias fun fun () { # Define the body of fun() }


Si solo quiere asegurarse de que el alias no exista, simplemente elimínelo y redirija su error a / dev / null de esta manera:

unalias foo 2>/dev/null

Puedes verificar si un alias está configurado con algo como esto:

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

Como se indica en la página del manual:

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.


Solo usa el alias comando como

alias | grep my_previous_alias

Tenga en cuenta que realmente puede usar unalias , por lo que podría hacer algo como

[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias

Eso eliminará el alias si fue establecido.


Una buena solución específica de bash para verificar alias es usar la matriz BASH_ALIASES, por ejemplo:

$ echo ${BASH_ALIASES[ls]}