this post was submitted on 07 Oct 2024
12 points (100.0% liked)

Bash

779 readers
1 users here now

Talk about the Bash Shell and Bash scripting

founded 4 years ago
MODERATORS
 

I'm studying bash, and I came across this Stackoverflow thread which contains this bit of code:

var="abcde"
echo ${var%d*}

The output is abc, but I can't figure out why. I understand that %d is used to indicate an integer number and * represents anything, but I can't figure out why those together would truncate var to only 3 characters.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] beatnik86 19 points 2 months ago (1 children)

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.

[โ€“] SpaceNoodle 4 points 2 months ago

That's the exact Bible I would have linked to.