如何在bash中的变量中存储字符串的长度?

时间:2017-04-30 05:49:52

标签: string bash shell scripting

我使用此guide作为参考。

我能够运行命令来查找字符串的长度,比如说

expr length 'monkey brains'

按预期返回13

但是我在将结果存储在变量中时遇到问题,比如名为hi的变量。首先,我试着直接指派嗨

hi=expr length 'monkey brains'

给出了命令未找到错误。 然后,我的思考过程将命令全部包装在一个字符串中,然后使用$来评估字符串。所以我拥有的是

hi="expr length 'monkey brains'"
echo $($hi)

但这也不起作用 - expr:语法错误

有谁知道我还能在这里尝试什么,或者为什么我的方法不起作用?

2 个答案:

答案 0 :(得分:3)

我认为这是你正在尝试做的事情。

$ expr length 'monkey brains'
13

使用命令替换将输出存储到变量:

$ len=$(expr length 'monkey brains'); echo "$len"
13

您也可以使用bash中的参数扩展执行此操作:

$ string='monkey brains'; len=${#string}; echo "$len"
13

Bash Hackers WikiBash Guide都是很好的信息资源。

答案 1 :(得分:1)

你可以试试这个

hi="monkey brains"
echo -n $hi | wc -c