如何大写bash中的第一个字母? editAppsDotPy(){ echo'从django.apps导入AppConfig'>>apps.py echo>>apps.py echo>>apps.py echo“class${APP_NAME}Config(AppConfig):”>>apps.py echo“name='${APP_name}'”>>apps.py }

如何大写bash中的第一个字母? editAppsDotPy(){ echo'从django.apps导入AppConfig'>>apps.py echo>>apps.py echo>>apps.py echo“class${APP_NAME}Config(AppConfig):”>>apps.py echo“name='${APP_name}'”>>apps.py },bash,Bash,您如何将第5行中的变量大写? 我试图用${APP_NAME^}执行此操作,但它返回了一个错误。如果您的bash版本太旧,无法支持该扩展(如OS X版本),或者您使用的是一个像zsh这样的shell根本不支持它,那么您必须转向其他版本。就个人而言,我喜欢perl(我认为OSX附带了它): $perl-ne'print ucfirst'您的函数被重写以使用更多不同的shell: script.sh: #/副秘书长/垃圾箱/环境卫生 大写() { printf“%s'$1”| head-c1 | tr

您如何将第5行中的变量大写?
我试图用
${APP_NAME^}
执行此操作,但它返回了一个错误。

如果您的
bash
版本太旧,无法支持该扩展(如OS X版本),或者您使用的是一个像
zsh
这样的shell根本不支持它,那么您必须转向其他版本。就个人而言,我喜欢perl(我认为OSX附带了它):


$perl-ne'print ucfirst'您的函数被重写以使用更多不同的shell:

script.sh

#/副秘书长/垃圾箱/环境卫生
大写()
{
printf“%s'$1”| head-c1 | tr[:lower:[:upper:]
打印文件“%s”$1“|尾部-c'+2”
}
editAppsDotPy()
{
cat>>app.py'假设tr在您的路径中,更常见的参数替换也可以帮助您。
您的第五行可能如下所示:

echo "class `tr [:lower:] [:upper:] <<<${APP_NAME:0:1}`${APP_NAME:1}Config(AppConfig):" >> apps.py

echo”类`tr[:lower:[:upper:]对我来说很好。什么错误?@Thomas
manage.sh:line 29:${APP_NAME^}:错误替换
您有哪个版本的
bash
以及脚本第一行的she bang是什么?确保脚本使用bash而不是其他Shell运行。此大小写更改扩展是bash特有的功能。
声明-c APP_NAME=“foo”;echo“$APP_NAME"
你能给我解释一下,它在特定情况下是如何工作的吗?@Sevy什么部分?perl只是标题作为输入。其他一切都只是基本的shell命令替换和herestrings。我不知道在我的情况下它应该是什么样子。我知道最好的解决方案,但我知道我的整个代码都被视为string@Sevy很好的解决方案,但使用Bash的或者Zsh的特定索引扩展功能,在Ksh或纯POSIX Shell中不存在。@LéaGris除此之外,Zsh不符合POSIX。以及
它大写并只写变量um的第一个字母,这不是你要的吗?毕竟,你问题的标题是
如何大写bash中的第一个字母。您可以(而且应该!)通过单击问题左下角的
edit
来更改标题。@Socowi而不是FooConfig,它返回FConfig。@看起来MacOS的
head
命令正在终止输入流。因此,我以不同的方式编写了它,分别为其余未更改的字符重新注入字符串。请使用此lat重试est版本。不能保证
head
只读取所需的数据,以写入其请求的输出。
$ foo=bar
$ echo "foo='$(perl -ne 'print ucfirst' <<<"$foo")'"
foo='Bar'
echo "class `tr [:lower:] [:upper:] <<<${APP_NAME:0:1}`${APP_NAME:1}Config(AppConfig):" >> apps.py