如何在bash脚本中将带有函数调用的args /参数从一个函数传递给另一个函数

时间:2018-09-19 02:39:24

标签: arrays bash function

我试图找出如何在同一bash脚本中将带有函数调用的参数从一个函数传递到另一个函数。这是到目前为止我得到的:

#!/usr/bin/env bash
# File: nevens.sh

function isiteven {
    if (( "$element%2"=="0" ))
    then
        echo 1
    fi
}

function nevens {
    local result=0
    for element in $@
    do
        if (( $(isiteven) == 1 ))    # $(isiteven "$element")
        then
           result=$result+1
        fi
    done

    echo $result
}

我尝试在isiteven函数内的$(isiteven)前面调用$element并硬编码%2==0。而且我尝试通过函数调用$(isiteven $element)$(isiteven "$element")传递参数,但是然后我不确定应该在%2==0前面编写什么代码来进行数学运算。

我正在专用计算机上使用Ubuntu 18.04。

1 个答案:

答案 0 :(得分:2)

就像编写脚本一样。

# Just an example to indicate to how to pass arguments.
isiteven() {
    echo "Command line arguments: $@"
}

nevens() {
    declare result=0
    declare element
    for element in "$@"; do
       # Do necessary logic here. 
       isiteven "$element"
    done
}