我在 Ubuntu bash 脚本中有一个变量,我想提取它的长度:
var_names='test1 tutorial2 test3w'
在 Python 列表中,我可以这样做len(var_names)
,结果将是 3。我需要在 Bash 脚本中执行类似操作 -我需要找到一种方法来确定字符串的长度,并且答案是 3。
我的尝试:
我尝试将其转换为数组然后测试其长度:
arr=($var_names)
echo ${#arr[@]}
然而:
echo $arr
只给予
test1
问题:
如何在 bash 中获取这个变量的长度,以便返回的长度为 3?
答案1
您的方法是正确的,${#arr[@]}
将为您提供数组中元素的数量(在本例中为 3):
$ var_names='test1 tutorial2 test3w'
$ arr=($var_names)
$ echo ${#arr[@]}
3
您还可以使用 返回各个数组元素的字符串长度${#arr[0]}
,${#arr[1]}
依此类推:
$ echo "${#arr[0]}"
5
$ echo "${#arr[1]}"
9
$ echo "${#arr[2]}"
6
$arr
只返回第一个元素的原因test1
是它相当于${arr[0]}
;如果要返回整个数组,可以使用${arr[@]}
或${arr[*]}
:
echo "${arr[@]}"
test1 tutorial2 test3w
Arrays
请参阅man bash
答案2
由于您实际上是在尝试查找变量中的单词数,因此可以使用wc -w
命令来实现:
$ var_names='test1 tutorial2 test3w'
$ wc -w <<< "$var_names"
3