shell中函数返回值

1、前言

  快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了。为了鞭策自己成长,还是要坚持写写博客,记录自己的成长。

2、shell函数介绍

  语法:

 [ function ] funname [()]
{
  action;
    [return int;]
 }

说明:

(1)可以带function fun()  定义,也可以直接fun() 定义,不带任何参数。

(2)参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255),还可以通过echo 直接返回。

3、注意

      shell中通过return返回是有限制的,最大返回255,超过255,则从0开始计算。

今天在工作中犯了这个错误,导致输出的值不对,被测试部提bug。

shell脚本调用例子:

#!/bin/sh

echo "shell function operation"

func1()
{
    local num1=100
    local num2=100

    let sum=$num1+$num2
    return $sum
}

func2()
{
    local num1=100
    local num2=155
    let sum=$num1+$num2
    return $sum
}

func3()
{
    local num1=100
    local num2=156
    let sum=$num1+$num2
    return $sum
}

func4()
{
    local num1=100
    local num2=156

    let sum=$num1+$num2
    echo $sum
}

func1
echo "called func1:$?"

func2
echo "called func2:$?"

func3
echo "called func3:$?"

sum=`func4`
echo "called func4:$sum"

执行结果如下所示:

时间: 2024-08-03 13:26:22

shell中函数返回值的相关文章

Shell中函数返回值超出问题

  这篇文章主要介绍了Shell中函数返回值超出问题,shell中通过return返回是有限制的,最大返回255,超过255,则从0开始计算,需要的朋友可以参考下 1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: 代码如下: [ function ] funname [()] { action; [return int;] } 说明: (1)可以带function fun() 定义,

Shell中函数返回值超出问题_linux shell

1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: 复制代码 代码如下:  [ function ] funname [()] {   action;     [return int;]  }   说明: (1)可以带function fun()  定义,也可以直接fun() 定义,不带任何参数. (2)参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为

函数调用-c语言中函数返回值类型的问题

问题描述 c语言中函数返回值类型的问题 看一道改错题: #include #include #include proc(int k)//很显然根据主调函数和返回值类型知道这里缺少类型 { int n;float s,w,p,q; n=1; s=1.0; while(n<=k){ w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } return s; } void main(){ system("CLS"); printf("%f

c++函数返回值是数组问题

问题描述 c++函数返回值是数组问题 比如现在要求定义一个函数fun(),在主函数调用时直接用fun():就能输出在fun函数里定义好的一个字符串,那要fun函数的返回值怎么返回才行,为什么我返回指针但打印出来却不是正确结果?求大神解释 解决方案 一般来说,出于内存管理的需要,让主程序来分配内存,传指针.比如scanf函数,就是通过这个方式输入值. 比如 void getstr(char * buffer) { char str[] = "hello world"; strcpy(bu

调用函数-怎样将二维数组作为函数返回值并在主函数中调用

问题描述 怎样将二维数组作为函数返回值并在主函数中调用 我的调用函数是这样的:float(*TIME(float f_1[3][100]))[100]{ for(i=0;i<=2;i++) { L_1[i][0]=-(a_1*f_1[i][0-3+100]+a_2*f_1[i][0-2+100]+a_3*f_1[i][0-1+100]+a_4*f_1[i][0]+a_5*f_1[i][0+1]+a_6*f_1[i][0+2]); L_1[i][1]=-(a_1*f_1[i][1-3+100]+a

c++动态连接库中的函数返回值为指针,请问在主程序中如何调用这个库的函数。

问题描述 c++动态连接库中的函数返回值为指针,请问在主程序中如何调用这个库的函数. [code=c]extern "C" int __declspec(dllexport)add(int x, int y); extern "C" int __declspec(dllexport)*add1(); int add(int x, int y) { return x + y; } int *add1() { static int a[3]={1,2,3}; stati

js jax 函数-js中Ajax返回的值怎么当函数返回值供别的函数调用?

问题描述 js中Ajax返回的值怎么当函数返回值供别的函数调用? 如上图代码 我调用时返回的是undefined 解决方案 改为同步,而且你的回调里面返回值没用,并不是你的getTotalIntegral的返回值,还有以后代码,不要发截图.看桌就烦 function getTotalIntegral(){ //...原来的代码 var rst=false; $.ajax({ async:false,/////////////同步 success:function(data){ if(data.s

JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法_javascript技巧

本文实例讲述了JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法.分享给大家供大家参考,具体如下: 主页面: <script type="text/javascript"> function SelectGroupCust() { var temp = window.showModalDialog("Default2.aspx?xx=" + Date(), "", "dialog

Linux system函数返回值

例: [cpp] view plain copy   status = system("./test.sh");   1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值 (2)shell返回值:指system所调用的shell命令的返回值,比如上例中,test.sh中返回的值为shell返回值.   2.如何正确判断test.sh是否正确执行? 仅判断status是否==0?或者仅判断status是否!=-1?