このプログラムは、最初の関数である read-series を呼び出し、while ループのすべての反復の入力を偶数オッズ関数に渡します。この関数は、数値が偶数か奇数かを判断し、VARSUMODDS=VARSUMODDS+ の値を作成します。奇数だった場合は入力するか、VARPRODUCTEVENS=VARSUMEVENS*入力の値にします。次に、それらを印刷します。ここには千の構文エラーがあると確信しているので、残忍にしてください。私はこの言語を学び始めたばかりで、数日前に C++ と Java しか知らなかったので、複雑な答えを理解できるとは思わないでください。ありがとう!
#! /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