【问题标题】:How to store the length of a string in a variable in bash?如何将字符串的长度存储在bash中的变量中?
【发布时间】:2017-09-27 22:32:14
【问题描述】:

我用这个guide 作为参考。

我可以运行命令来查找字符串的长度,比如

expr length 'monkey brains'

按预期返回 13

但是,我在将结果存储在变量中时遇到了问题,比如说一个名为 hi 的变量。首先,我尝试直接分配 hi

hi=expr length 'monkey brains'

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

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

但这也不起作用 - expr: syntax error

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

【问题讨论】:

  • 在文章中向下滚动。它解释了如何分配长度。
  • 既然是bash,为什么不a="some string"; len=${#a}; echo "len: $len"呢?或者,只是a="some string"; echo "len: ${#a}"?

标签: string bash shell scripting


【解决方案1】:

我认为这就是你想要做的。

$ 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 都是很好的信息资源。

【讨论】:

  • Mac os x 用户注意,第三个选项len=${#string} 有效。
【解决方案2】:

你可以试试这个

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

【讨论】:

  • 我知道如何输出它。这不会分配值
猜你喜欢
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 2021-12-02
  • 2012-10-25
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多