#!/bin/bashfunction addarray{local sum=0local arrayarray=(`echo $@`)echo "array in function adday: ${array[*]}"for((i=0 ; i<5 ; i++))doecho "i=$i"echo "\$array[$i]=${array[$i]}"sun=$[ $sum + ${array[$i]} ]doneecho $sum}myarray=(1 2 3 4 5)echo "The original array is ${myarray[*]}"arg=`echo ${array[*]}`sum=`addarray $arg` echo "sum=$sum"執(zhí)行后for循環(huán)內(nèi)sun=$[ $sun + ${array[i]} ] 行出現(xiàn)語法錯誤,函數(shù)內(nèi) echo "\$array[$i]=${array[$i]}" 無法顯示蘇族元素的實際值求大蝦幫忙看看,在命令行里echo ${array[2]} 是可以顯示元素值的???
2 回答

夢里花落0921
TA貢獻1772條經(jīng)驗 獲得超6個贊
$[ $sun + ${array[i]} ]
沒有這個用法,改一下:
$((sum+${array[$i]}))
array=(`echo $@`) 數(shù)組賦值不能這么寫,建議用for循環(huán)逐個賦值。

回首憶惘然
TA貢獻1847條經(jīng)驗 獲得超11個贊
第一條修改了但sum還是一直=0;第2條還是能用的
另外輸出結(jié)果的順序很怪是這樣的
$ ./test
The original array is 1 2 3 4 5
sumout of array: array in addarray: 1 2 3 4 5
i=0
element in array is 1
sum in addarray: 0
i=1
element in array is 2
sum in addarray: 0
。。。(省略)
sum一直=0;而且“sumout of array: ”應(yīng)該在最后輸出的啊怎么在調(diào)用的函數(shù)(addarray)內(nèi)部的輸出顯示之前就先顯示出來了?
添加回答
舉報
0/150
提交
取消