加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

SHELL脚本

发布时间:2020-12-15 17:04:45 所属栏目:安全 来源:网络整理
导读:shll作为脚本语言,也有自己的函数。但是他有许多与其他语言不同的特点 定义 在这里,定义了一个函数,有2个参数,第一个:数组,第二个:单个值。 这个函数的作用是判断第二个参数的值是否在第一个参数(数组)里面。 #!/bin/sh # 定义函数 # _FUN function

shll作为脚本语言,也有自己的函数。但是他有许多与其他语言不同的特点

定义

在这里,定义了一个函数,有2个参数,第一个:数组,第二个:单个值。
这个函数的作用是判断第二个参数的值是否在第一个参数(数组)里面。

#!/bin/sh 
# 定义函数
# _FUN
function contain() {
        array=$1
        value=$2
        for _arr_val in ${array[@]}
        do
                ta_array=`echo ${_arr_val} | cut -d ',' -f 1`
                tb_value=`echo ${value} | cut -d ',' -f 1`

                if [ "${ta_array}" = "${tb_value}" ];then
                        g_contain_rs="1"
                else
                        g_contain_rs="0"
                fi

        done
}

调用

ARR_RS_B=("AAA","BBB","CCC")
SYSJOB_NAME="AAA"
contain ${ARR_RS_B} ${SYSJOB_NAME}

需要注意的是:函数必须在被调用之前就已经被定义好。

获取函数返回值

目前在shell脚本中,获取函数的返回值有2种方式

第一种使用 $? 来获取上一个函数的返回值

# 函数的返回值一般使用1或者0
function test_fun() {
    if 条件;then
        return 1
    else
        return 0
    fi
}

test_fun
echo "$?"

这种方法简洁易用,但是有一个致命的问题:在循环调用方法的时候,$?只能获取到第一次被调用的函数的返回值。

如何避免这种问题?可以使用全局变量。如同在上文【定义】中,使用全局变量g_contain_rs来获取最新的函数调用返回值。

g_contain_rs=""

function test_fun() {
    if 条件;then
        g_contain_rs=1
    else
        g_contain_rs=0
    fi
}

echo "$g_contain_rs"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读