git alias usando $ ((LINES / 2))

He intentado aproximadamente 30 variantes de esto, incluso versiones de sh -c , comillas dobles e individuales, comillas anidadas, etc. ¿Qué me estoy perdiendo?

 shortlog = "!git log -n $((LINES / 2))" 

¿Qué pasa si defines una function?

 function shortlog { tmp=$(($LINES / 2)); git log -n "$tmp"; } 

luego exportarlo:

 export -f shortlog 

Debes ponerlo en tu .bashrc , supongo, si quieres usarlo cada vez que inicias un terminal (pero, por supuesto, primero puedes probarlo en un sterminal aislado, por supuesto).


EDITAR :

ayuda esto?

 git config alias.shortlog '!f() { tmp=$(($LINES / 2)); git log -n "$tmp"; }; f' 

No me encanta cómo conseguí que esto funcione, pero literalmente es lo único que funcionó y quiero que esto termine. ~/.gitconfig todo lo relacionado con los alias de logging más cortos de mi ~/.gitconfig , y en mi carpeta ~/scripts , que está en mi $PATH , hice files con nombres como git-las (list all short), con un código como este en cada:

 #!/bin/bash $height=$(tput lines) $height=$((height / 3)) git la -$height 

Hice cada ejecutable. Git tomará git las y encontrará git-las (sin extensión) en mi ruta, si es ejecutable, y lo ejecutará, y funciona. Ese git la (list all) está en mi ~/.gitconfig , y es solo el típico git log --all --oneline --graph --decorate todos le dan su propio nombre. Esto es lo único que funciona, después de fácilmente 100 variaciones en cada bit de información en línea que pude encontrar. Incluso al intentar mover las cosas de return a ~/.gitconfig falla, y $LINES también falla en estos files de trabajo; siempre es 0

Qué batalla, pero ahora tengo loggings cortos (algunos tamaños y configuraciones diferentes) que se escalan dinámicamente con la window para darme siempre aproximadamente 1/2 a 1/4 de salida de logging en línea, dividiendo por 3 (y 6 por 1/4 ) representa un espacio extra alnetworkingedor de las asignaciones de combinación y las vías de acceso de la twig. He tenido estos códigos rígidos durante un año, pero ahora estoy empezando a versionar correctamente y compartir mis files dotfiles entre máquinas, así que lo quería dynamic para todas las alturas de mis diferentes monitores, y por lo tanto funcionaría de una manera esperada sin importa cuán grande tenía la window.