Поскольку вы выводите 0
или 1
из isiteven
, вы можете просто безоговорочно добавить выходные данные функции:
#!/bin/bash
source program6.sh
function nevens {
local count=0
for check; do # implicit `for check in "$@"`
(( count += $(isiteven $check) )) # add output of `isiteven $check`
done
echo $count
}
Это предполагает, что все ваши данные верны , так что если это не гарантировано, вам нужно будет добавить несколько проверок.
Обратите внимание, что в этом сценарии используются несколько нестандартных функций, которые не будут работать во всех оболочках:
source program6.sh
вместо стандартного ключевого слова . program6.sh
function
вместо просто nevens () {
local
ключевого слова для объявления локальной переменной внутри функции +=
вместо стандартных count=$(( count + $(isiteven $check) ))