我是shell脚本的新手,我正在尝试一个简单的任务,即获取使用生成的数字序列的长度seq.
在这里的相关帖子的帮助下:如何在unix shell中找到数组长度?我能做到这一点 -
a=(1 2 3 4 5)
echo ${#a[@]} #length of a
5 #length of a = 5 (This is fine !!)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用类似的东西seq..
b=$(seq 1 1 10)
echo $b
1 2 3 4 5 6 7 8 9 10
echo ${#b[@]}
1 #the length of b is 1, while I expect it to be 10
Run Code Online (Sandbox Code Playgroud)
为什么会这样?变量类型a和b是否不同?是b不是数组?
我相信我在这里缺少一些非常微不足道的东西,非常感谢帮助.
谢谢
阿什温
您需要将输出存储在数组中以查找数组的长度:
$ b=($(seq 1 1 10))
$ echo ${#b[@]}
10
Run Code Online (Sandbox Code Playgroud)
说b=$(seq 1 1 10)不会产生数组.