将变量中的字符串转换为小写

5

使用bash版本3.2.57(1)-release(x86_64-apple-darwin14)

如何“重新分配”或“更改”读入变量的现有值。

如果用户输入字符串IAmString,我希望propInput存储值iamstring。 我只是为了举例而简单地打印到控制台。

read userInput
echo ${userInput} | tr '[:upper:]' '[:lower:]'
2个回答

13

你应该存储你的命令输出:

read userInput
userInput=$(echo "$userInput" | tr '[:upper:]' '[:lower:]')

你说得对。他确实漏掉了设置变量的部分。出于某种原因,我以为他不需要那一部分,所以在转换成小写时遇到了问题... - yftse

-1

我很惊讶那个还没有起作用...

你存储值时有问题吗?

如果是这样,你需要:

userInput=$(echo ${userInput} | tr '[:upper:]' '[:lower:]')

但它看起来像是Mac环境。你得到了什么结果?

编辑,添加userInput=$()并重新构建以更好地查询。


不,它是有效的。但他不想在控制台中显示它。他想将新字符串存储在userInput中。 - ROMANIA_engineer
1
这不是一个答案,而是一条评论。 - Oleg Andriyanov
这不是一个答案,因为我对问题不太确定。但我猜现在我明白问题了?我仍然只是猜测...这里缺少了userInput=$()。现在正在编辑我的“评论”... - yftse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接