![Bash 数组长度总是给我 1](https://linux22.com/image/129491/Bash%20%E6%95%B0%E7%BB%84%E9%95%BF%E5%BA%A6%E6%80%BB%E6%98%AF%E7%BB%99%E6%88%91%201.png)
我写了一个 bash 脚本,如下所示。
...file1.sh..
read samplearrrr;
echo "*******************"
echo ${#samplearrrr[@]}
echo "*******************"
从终端我将其运行为 ./file1.sh,并将输入读取为 23 45 67 88,
输出中的长度始终为 1。
我尝试用谷歌搜索,但没有找到解决方案。
答案1
您的代码将单词作为单个字符串读入变量。它不会自动转换为数组。
在 中bash
,您可以使用-a
withread
将值读入数组:
read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}"