加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

shell 函数返回值优秀实践

发布时间:2021-12-13 11:05:58 所属栏目:教程 来源:互联网
导读:shell函数返回值有三种方式:1、直接return通过$?来接收返回值;2、定义全局变量,通过全局变量来接收的方式,使用函数返回值。3、echo的方式,通过标准输出来返回。 带来一个问题,哪种方式比较好呢?经过血淋淋的教训,第三种。第一和第二种,假如函数体中

shell函数返回值有三种方式:1、直接return通过$?来接收返回值;2、定义全局变量,通过全局变量来接收的方式,使用函数返回值。3、echo的方式,通过标准输出来返回。
 
带来一个问题,哪种方式比较好呢?经过血淋淋的教训,第三种。第一和第二种,假如函数体中用到了管道,则相当于开启了一个子进程。子进程中的修改、返回操作是无法反应到父进程的。所以,老高将在以后的脚本中,只用第三种方法,在shell的函数中返回值。
 
无图无真相!上一段代码先!
 
#!/bin/sh
checkInt(){
        expr $1 + 0 >/dev/null 2>&1
        [ $? -ne 0 ]&&echo 0
        echo $1
}
sum=0
while read line
do
        tmp=`echo $line|awk '{print $NF}'`
        tmp=$(checkInt $tmp)
        ((sum=$sum+$tmp))
done<test.log
echo $sum

(编辑:PHP编程网 - 黄冈站长网)

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

    热点阅读