Traduciendo este command de shell:
$> sh -c 'if [ 1 -eq 1 ]; then echo TRUE; else echo FALSE; fi' TRUE
A este git alias en ~/.gitconfig
:
[alias] test = !sh -c 'if [ 1 -eq 1 ]; then echo TRUE; else echo FALSE; fi'
Resultados en:
$> git test <output-omitted> Syntax error: Unterminated quoted string
PD: No quiero asignar scripts de shell a alias de git.
PS2: como @Cyrus y @CodeWizard han mencionado, se necesita un par de comillas adicionales para proteger la definición de alias contra múltiples niveles de expansión. Buen truco para evitar los puntos y comas proporcionados por @choroba . Gracias a todos.
Otra solución es ponerlo en una cadena:
[alias] test = "!sh -c 'if [ 1 -eq 1 ]; then echo TRUE; else echo FALSE; fi'"
Esto también funcionará.
Parece que los puntos y comas tienen un significado especial en .gitconfig
. Afortunadamente, puede reescribir el command sin punto y coma:
[alias] test = !sh -c '[ 1 -eq 2 ] && echo TRUE || echo FALSE '
Intenta citar un command completo:
test = "!sh -c 'if [ 1 -eq 1 ]; then echo TRUE; else echo FALSE; fi'"
Ver: Git alias multi-commands con; y &&