Bash: Append to variable without creating leading colon if unset
Say you need to append a directory to PATH, but only add a leading : if PATH is
already set. The standard
export PATH=${PATH}:/home/user/bin
won’t work correctly if PATH is not set – you’ll get :/home/user/bin instead of
/home/user/bin.
Instead you the ${:+} expansion operator:
export PATH=${PATH:+${PATH}:}/home/user/bin
The first braces expand to $PATH and the colon iff PATH is set already, otherwise to nothing.
Leave a comment