该程序应该调用第一个函数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