該程序應該調用第一個函數read-series,然後將while循環的每個迭代的輸入傳遞給even-odds函數,告訴數字是偶數還是奇數,並且使VARSUMODDS = VARSUMODDS +輸入的值(如果它是奇數)或使VARPRODUCTEVENS = VARSUMEVENS *輸入的值。然後它會打印出來。我敢肯定,這裏有一千個語法錯誤,所以請大膽,殘忍。請記住,我剛開始學習這門語言,幾天前我才知道只知道C++和Java,所以不要指望我理解複雜的答案。謝謝!Bash腳本輸入一組數字並將它們傳遞給其他函數
#! /bin/bash
TMPDIR=${HOME}/tmpdir
echo "Enter an integer: "
VARSUMODDS=0
VARPRODUCTEVENS=0
function read-series() {
while read numbers ; do
echo "Enter an integer: "
even-odds $numbers
done
echo numbers > $TMPDIR/$$.temp
return 0;
}
function even-odds() {
evenp=$(($1 % 2))
if [ $evenp -eq 0 ] ; then
$VARPRODUCTEVENS=$(($VARPRODUCTEVENS * $1))
return 0;
else
$VARSUMODDS=$(($VARSUMODDS + $1))
return 1;
fi
}
function reduce() {
echo -n "Sum of odds: "
echo VARSUMODDS
echo -n "Product of evens: "
echo VARPRODUCTEVENS
return 0;
}
read-series
我從你的答案中學到了一些東西:我不知道你可以用'+ ='添加一個數組元素。 – Barmar