Arrays 如何创建数组并为其赋值-BASH脚本
啊哈数组和循环是我最薄弱的环节。我试图根据用户输入创建数组,所以Arrays 如何创建数组并为其赋值-BASH脚本,arrays,bash,Arrays,Bash,啊哈数组和循环是我最薄弱的环节。我试图根据用户输入创建数组,所以 printf "%s\n" "how may array you want" read value 在此之后,我将询问用户希望在数组上添加什么值(这是我一直坚持的位) 虽然这个方法有效(我认为),但我不太确定我是否真的在创建一个数组并为该数组赋值 可以在bash中动态扩展数组。您可以使用此代码段 a=();a[${a[@]}]=${number};echo${a[@]} 第一条语句定义一个空数组。第二个(可以在while循环中使
printf "%s\n" "how may array you want"
read value
在此之后,我将询问用户希望在数组上添加什么值(这是我一直坚持的位)
虽然这个方法有效(我认为),但我不太确定我是否真的在创建一个数组并为该数组赋值 可以在bash中动态扩展数组。您可以使用此代码段
a=();a[${a[@]}]=${number};echo${a[@]}
第一条语句定义一个空数组。第二个(可以在while循环中使用)是在最后一个elment位置+1处插入一个值,因为
${a[@]}
表示a
的长度。第三条语句只打印数组中的所有元素。是否要在shell中创建数组?该array.db
文件的用途是什么?创建此数组后,您将如何处理它?我只想将值存储在array.db上,看看它是否工作,shell是的,不知道数组中是否有任何线索。该脚本将在array.db
文件中写入一系列数字,每行一个。我不知道您打算如何处理该文件(它不是shell数组)。我使用array.db的唯一原因是因为以后我想在同一脚本中或在以后的脚本中使用grepding从array.db获得的值?您打算如何在grep
中使用该文件?使用-f
?这是一种古老的语法——附加到数组的更简单的现代方法就是a+=(“$value”)
。我不知道这是否回答了OP的问题,但是OP的问题并不十分清楚(一直使用“数组”这个词,但给出的代码没有显示出使用实际shell数组的意图).那是因为我对数组一无所知,谢谢你的帮助:)
i=1
while [ $i -le $value ]
do
echo "what value you want to put in array $i"
read number
echo $number >> array.db
i=$(( i+1 ))
echo
done