bash shell alias zsh zshrc

bash - Alias ZSH con parámetro



oh my zsh alias (4)

Estoy tratando de hacer un alias con un parámetro para mi simple git add / commit / push.

He visto que la función podría usarse como alias, así que lo intenté pero no lo logré.

antes de tener

alias gitall="git add . ; git commit -m ''update'' ; git push"

Pero quiero poder modificar mis compromisos:

function gitall() { "git add ." if [$1 != ""] "git commit -m $1" else "git commit -m ''update''" fi "git push" }

(Sé que es una práctica git terrible)


No puedes hacer un alias con argumentos *, tiene que ser una función. Su función está cerca, solo necesita citar ciertos argumentos en lugar de los comandos completos y agregar espacios dentro de [] .

function gitall() { git add . if [ "$1" != "" ] # or better, if [ -n "$1" ] then git commit -m "$1" else git commit -m update fi git push }

*: La mayoría de los shells no permiten argumentos en los alias, creo que csh y los derivados, pero no deberías usarlos de todos modos .


Si realmente necesita usar un alias con un parámetro por algún motivo, puede piratearlo incorporando una función en su alias y ejecutándola inmediatamente:

alias example=''f() { echo Your arg was $1. };f''

Veo que este enfoque se usa mucho en los alias .gitconfig.


Utilicé esta función en el archivo .zshrc:

function gitall() { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update # default commit message is `update` fi # closing statement of if-else block git push origin HEAD }

Aquí, git push origin HEAD es responsable de impulsar su rama actual en el control remoto.

Desde el símbolo del sistema, ejecute este comando: gitall "commit message goes here"

Si solo ejecutamos gitall sin ningún mensaje de confirmación, el mensaje de confirmación se update según lo indicado por la función.


"git add ." y los otros comandos entre " son solo cadenas para bash, quitar las " s.

Es posible que desee utilizar [ -n "$1" ] en su cuerpo de if.