首页 > 解决方案 > tr 命令在 bash 脚本中失败

问题描述

我写了一个我经常使用的 bash 脚本。突然下一个命令失败,错误为 `[:lower:]: command not found。我使用该脚本有一段时间了,所以这个命令以前有效。

PROJECTTITLE="$(tr '[:lower:]' '[:upper:]' <<< ${PROJECTNAME:0:1})${PROJECTNAME:1}"

该命令将字符串变量转换为标题大小写并将其保存在另一个变量中。

在控制台中执行相同的代码时,它可以正常工作。

我使用的是 macOS Mojace 1.14.2,bash 版本 3.2.57(1)-release。

标签: bashsh

解决方案


不需要涉及外部命令和子shell;Bash 内置了案例修改功能!编辑:从 4.0 版开始

PROJECTNAME=${PROJECTNAME,,} # convert all characters to lowercase
PROJECTTITLE=${PROJECTNAME^} # convert first character to uppercase

推荐阅读