Bash 数组长度总是给我 1

Bash 数组长度总是给我 1

我写了一个 bash 脚本,如下所示。

...file1.sh..

read samplearrrr;
echo "*******************"
echo ${#samplearrrr[@]}
echo "*******************"

从终端我将其运行为 ./file1.sh,并将输入读取为 23 45 67 88,

输出中的长度始终为 1。

我尝试用谷歌搜索,但没有找到解决方案。

答案1

您的代码将单词作为单个字符串读入变量。它不会自动转换为数组。

在 中bash,您可以使用-awithread将值读入数组:

read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}" 

相关内容