That's manipulation of the string held in var. Dollar sign and curly braces wrap the variable, the single percent sign say remove the shortest matching substring from the end of the variable contents, and the 'd*' is the substring to match, a lowercase d followed by any characters in this instance. var will still hold the entire original string, only the echo output is modified here. You can find more documentation here, https://tldp.org/LDP/abs/html/string-manipulation.html.
Bash
Talk about the Bash Shell and Bash scripting
That's the exact Bible I would have linked to.
You may be confusing that %d with printf syntax. I'm not entirely sure, but I think what the percent sign means is delete everything from the end of string until the first occurence of letter "d"
Would like to add, don't do this or shoulda used Python.
Manipulating strings in bash is a mistake and creates spaghetti code. This goes for sed and awk as well.
Python equivalent
str_x = "abcde"
pos = str_x.index("d")
ret = str_x[:pos]
print(ret)
In one line, capturing the output into a bash variable
ret=$(python -c 'str_x = "abcde"; pos = str_x.index("d"); ret = str_x[:pos]; print(ret)')
Thought this was a bash community
it's a bash community as long as bash is the right tool for the job. For text manipulation, not so much. In Python can also do some really stupid things. Then will get advice. They'll say, just don't do that
Which is what i'm doing here.
just don't do that