bash - 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。
解决方案
不需要涉及外部命令和子shell;Bash 内置了案例修改功能!编辑:从 4.0 版开始
PROJECTNAME=${PROJECTNAME,,} # convert all characters to lowercase
PROJECTTITLE=${PROJECTNAME^} # convert first character to uppercase
推荐阅读
- c# - c# 没有向 PHP 发送 json 请求
- docker - 在 Web App 中使用 OpenLDAP 来进行身份验证
- javascript - 在 Chart JS 中计算值
- solr - 向 Apache Solr 添加稀有语言
- python - 与 python 中的 list.sort() 混淆
- automata - L = {a^nb^m : m ≥ n, mn 为偶数}的 PDA
- facebook - 我无法设置 Facebook 与 IBM Watson Assistant 的集成。回调 URL 404 错误
- android - 如何解决 android app build 中的 mapbox 引用?
- objective-c - 检查数组的所有项是否都包含在字符串中
- database-design - 如何在 Apache Kudu 中建模一对多关系?