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:
- Asegúrese de que existe un alias.
- Unalias lo.
- 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]}