bash 参数转换给出了错误的替换

问题描述

在脚本中使用参数转换时总是出现 bad substitution 错误

#!/usr/bin/env bash
abc=abc
echo ${abc@U}

结果

line 3: ${abc#U}: bad substitution

但是,它在交互模式下运行良好

> abc=abc
> echo ${abc@U}
ABC

我知道 Bash: How to use operator parameter expansion ${parameter@operator}? 问题,但没有答案。

如何在脚本中使用参数转换?

解决方法

需要 bash 5.1 或更高版本