The bash "Definitions" does mention explicitly:
name
A word consisting solely of letters, numbers, and underscores, and beginning with a letter or underscore.
Names are used as shell variable and function names.
Also referred to as an identifier.
So your variable name PAL:DRIVELETTER is actually invalid.
You need to extract it from the 'env
' output, as proposed in this answer:
pal_driveletter=$(env |grep "^PAL:DRIVELETTER=" | cut -d= -f2-)