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 的建议很好听。
我正在编写此脚本来计算输入文件中的一些变量。我不明白为什么它不计算数组中的元素(应该是 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 的建议很好听。