You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BASH字符串大小写转换时出现Bad Substitution错误求助

解决Bash中${foo^}参数扩展的"bad substitution"错误

问题原因

你虽然通过bash --version确认了Bash 5.2的版本,但当前执行命令的shell大概率不是Bash——MacOS默认交互式shell是Zsh,在Zsh环境里执行Bash特有的${var^}首字母大写扩展语法,就会触发该错误。

解决步骤

  1. 先确认当前shell类型:
echo $SHELL

若输出为/bin/zsh,说明你处于Zsh环境中。

  1. 切换到Bash环境:
bash

执行后验证当前shell:

echo $0

输出应为bash。

  1. 重新执行测试命令:
foo="mYnAME"
echo ${foo^}

此时会正常输出MYnAME(首字母大写的结果)。

替代方案(Zsh环境下实现相同效果)

如果不想切换shell,Zsh中可用以下语法实现字符串首字母大写:

echo ${(C)foo:0:1}${foo:1}

内容的提问来源于stack exchange,提问作者Ritvik Sai Narayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:44:53