Hi everyone,
Case: Outputting a hash from a git repository, but want it abbreviated.
This is done totally via z-shell script, without git commands.
Taking a bash/sed example and converting it to zsh.
Sorry if that is to much information.
With
print -- $(<.git/${(s.: .)$(<.git/HEAD)[2]})
I get the full 40 character hash as expected
but when I tried to output the first 9 characters
print -- ${$(<.git/${(s.: .)$(<.git/HEAD)[2]})[1,9]}
it too, returns the full 40 character hash and no warnings or error messages.
After beating my head for a while, it dawned on me to try quoting
print -- ${"$(<.git/${(s.: .)$(<.git/HEAD)[2]})"[1,9]}
which worked, returning the first 9 characters of the hash.
Could someone explain why the quotes are needed here so hopefully
the next time I will understand. I swear zsh quoting will drive me nuts.
Thanks for putting up with me.
Regards,
Jim Murphy