我接受一些字符串作为我的脚本的用户输入,例如 -
read -p "User's full name : " FULLNAME
read -p "User's Manager's name : " MGRNAME
.
.
Run Code Online (Sandbox Code Playgroud)
我希望所有输入字符串都大写,即输入字符串中的每个单词都大写。
我写了一个简单的函数,例如 -
capitalize()
{
$1=`echo ${$1}|sed -e "s/\b\(.\)/\u\1/g"`
}
Run Code Online (Sandbox Code Playgroud)
并将这个函数称为 -
capitalize FULLNAME
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误 -
line 77: ${$1}: bad substitution
Run Code Online (Sandbox Code Playgroud)
还尝试过间接扩展 -
capitalize()
{
$1=`echo ${!1^}`
}
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误 -
line 77: FULLNAME=Kamlesh: command not found
Run Code Online (Sandbox Code Playgroud)
请帮助提供正确的语法或任何其他方式来实现此目的。
示例输出 - 我正在读取 FULLNAME 变量中的输入。当我调用 Capitalize() 时,它应该更新 FULLNAME 变量本身内的值。
例如,如果用户输入是 - “kamlesh gallani”
如果我现在调用大写 FULLNAME,那么 FULLNAME 应该包含“Kamlesh Gallani”
使用bash的参数扩展,假设变量var:
${var^} ## Only first character
${var^^} ## All characters
Run Code Online (Sandbox Code Playgroud)
例子:
$ foo=bar
$ echo "${foo^}"
Bar
$ echo "${foo^^}"
BAR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4810 次 |
| 最近记录: |