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.

  • bbpngn
    link
    fedilink
    English
    arrow-up
    1
    ·
    17 days ago

    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”