Bash - readarray 只包含一个元素

Bash - readarray contains only one element

我正在编写此脚本来计算输入文件中的一些变量。我不明白为什么它不计算数组中的元素(应该是 500)而只计算 1。

#initializing variables 
timeout=5
headerFile="lab06.output"
dataFile="fortune500.tsv"
dataURL="http://www.tech.mtu.edu/~toarney/sat3310/lab09/"
dataPath="/home/pjvaglic/Documents/labs/lab06/data/"
curlOptions="--silent --fail --connect-timeout $timeout"

#creating the array
declare -a myWebsitearray #=('cut -d '\t' -f3 "dataPath$dataFile"')

#obtaining the data file
wget $dataURL$dataFile -O $dataPath$dataFile

#getting rid of the crap from dos
sed -e "s/^m//" $dataPath$dataFile | readarray -t $myWebsitesarray

readarray -t myWebsitesarray < <(cut -d, -f3 $dataPath$dataFile)

myWebsitesarray=("${#myWebsitesarray[@]:1}")

#printf '%s\n' "${myWebsitesarray2[@]}"

websitesCount=${#myWebsitesarray[*]}

echo $websitesCount

您正在用该行中的元素数覆盖您的数组

myWebsitesarray=("${#myWebsitesarray[@]:1}")

去掉井号

myWebsitesarray=("${myWebsitesarray[@]:1}")

另外,@chepner 的建议很好听。