El blog de cubells

Àlies i funcions en bash

Si treballeu amb el Bash, veureu que es poden definir àlies en el fitxer .bashrc del teu usuari.

Els àlies et permeten definir noms curts per poder executar altres comandes més llargues. Això és una meravella quan executes comandes moltes vegades. En lloc d'escriure la comanda cada vegada, escrius el nom curt i s'executa la comanda que esperes.

Per exemple, si executes moltes vegades

$ git branch

pots definir un àlies a .bashrc així:

alias gib='git branch'

i en lloc d'executar cada vegada git branch executes gib amb el mateix resultat.

De fet, si teniu instal·lat un Ubuntu i obriu el fitxer .bashrc del vostre usuari, veureu que ja hi ha definit un grapat d'àlies. Uns per a executar comandes amb la sortida dels resultats en color:

alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

Uns altres que faciliten certs tipus de llistats (i que mai haureu utilitzat):

alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

Fins i tot un àlies que mostra una alerta quan un procés s'està executant molt de temps:

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

L'única cosa que heu de tindre en compte és que l'àlies no ha de ser una comanda existent ja al sistema, perquè si no s'executarà la del sistema, i que si modifiqueu el fitxer .bashrc, heu de reiniciar bash perquè els canvis siguen efectius.

Però els àlies admeten paràmetres? No. Per exemple, si executes moltes vegades

$ git commit -am "El que siga"

no pots definir un àlies amb el paràmetre "El que siga" i així estalviar-te repeticions.

Però sí que pots definir funcions. Si definiu una funció així

gico() {
    git commit -am "$1"
}

ja teniu el mateix efecte que l'àlies i podreu executar amb el mateix resultat això:

$ gico "El que siga"

Sense comentaris encara. Comenta ara