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.