我写了一个 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[@]}"