【问题标题】:bash parameter transformation gives bad substitutionbash 参数转换给出了错误的替换
【发布时间】:2021-06-16 18:37:29
【问题描述】:

当我在脚本中使用参数转换时,我总是收到 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}? 问题,但没有答案。

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

【问题讨论】:

  • /usr/bin/env bash 是什么版本?您的交互式 bash 是什么版本?
  • /usr/bin/env bash 5.0.17,交互式 bash 5.1.4(1)

标签: bash parameter-expansion


【解决方案1】:

需要 bash 5.1 或更高版本

【讨论】:

  • 检查release notes:在5.1版本中添加了转换UuLK
  • 在4.0+中转大写,可以使用declare -u abc${abc^^}
猜你喜欢
  • 2012-09-22
  • 2014-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多