Поскольку вы упомянули Docker, я предполагаю, что у вас, вероятно, есть контейнер без установленного bash (это Alpine?), И ваш скрипт выполняется со встроенным sh
.
В любом случае, для используемого вами синтаксиса string^^
требуется bash 4.0 и выше, так что вам нужно установить bash.
Если вы используете Alpine linux:
$ apk add --no-cache bash
$ bash
$ HELLO=hi ; echo ${HELLO^^}
=> HI
и тогда вы должны быть на пути.
Конечно, если вы управляете Dockerfile
, добавьте к нему установку пакета с помощью:
RUN apk add --no-cache bash
и добавьте шебанг в ваш скрипт, чтобы убедиться, что он выполняется с помощью bash:
#!/usr/bin/env bash
# ...