Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / shell 函数返回值最佳实践

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相关阅读:Linux Shell 自定义函数(定义,返回值,变量作用域)  http://www.linuxidc.com/Linux/2011-03/33700.htmLinux Shell函数返回值  http://www.linuxidc.com/Linux/2012-09/70146.htm第一个Unix Shell函数  http://www.linuxidc.com/Linux/2013-02/78922.htmShell函数(Linux环境下测试) http://www.linuxidc.com/Linux/2010-08/27611.htm