美文网首页
Shell 获取函数的返回值

Shell 获取函数的返回值

作者: 数据小白鼠 | 来源:发表于2018-06-25 15:08 被阅读0次

背景:定义了一个函数,需要对比 map 中的值,获取 value 中最小值。Shell 和其他语言的函数返回值还是差别挺大的。

定义一个函数

functionname(){
  操作内容
  echo 输出内容
  return 返回值  #返回值可有可无
}

获取的函数的返回值

  1. 函数默认是将标准输出传递出来,不是返回值
    所以如果直接调用 functionname ,实际上是将输出传递回来
    例如:
    a=`functionname`
    将函数 functionname 的标准输出传递给 a.

  2. 调用函数不是需要加 (),直接写函数名就可以
    functionname

  3. 使用 $? 接收上一个程序的返回值状态,也就是 return 的值

functionname
#输出函数的返回值
echo $?

4.函数的返回值一般是 0 和1 ,表示成功和失败,如果一定要返回其他整数,定义一个全局变量,在函数中改变它遇到的问题:
将函数返回值赋值时报错:return: differentcluster: numeric argument required
虽然不影响适应,但看着总是不好,查了下说 shell 的函数默认值是返回 0 和 1 来表示是否成功,如果一定要返回值的话,可以在函数外定义一个全局变量,然后在函数中为这个变量赋值。这样调用函数后,全局变量就变了,达到同样的效果。
例如:通过函数增加 num 值

#!/bin/bash

num=10
add(){
  echo "test"
  ((num++))
}

#调用 
add

输出的结果是 11(变量自增我用 num=num+1 是无效的,必须使用 num++)

其他

Shell 中函数的参数定义也和其他语言不一样,不是放在括号内。函数中定义时直接在函数体内使用 $1、$2、...$n 来表示参数。
调用是直接 functionname para1 para2 ... paran 来调用函数.

原文:https://www.cnblogs.com/meitian/p/5662022.html

相关文章

  • Jenkins、Shell命令

    Shell 获取函数的返回值 shell函数 Jenkins权限控制-Role Strategy Plugin插件...

  • Android NDK - shell语法2

    方法参数传递机制详解 -- 函数编程 函数使用 阶乘函数 获取函数返回值 shell使用实例 - 执行编译ffmp...

  • Shell 获取函数的返回值

    背景:定义了一个函数,需要对比 map 中的值,获取 value 中最小值。Shell 和其他语言的函数返回值还是...

  • 构建GOCD Pipeline你应该知道的Shell脚本知识

    Shell基础 Shell脚本开始 function 获取参数 获取function 返回值。方法体内通过echo...

  • Shell函数的使用

    shell中的函数和其他语言的函数类似,也有参数和返回值。shell中的函数声明格式如下: 举例如下: 1.pri...

  • 2.2.8 shell函数及函数传参

    和c语言类型,shell中也有函数的概念,但是函数定义中没有函数返回值,也没有参数列表。形如: 函数名(){ 函数...

  • python函数进阶1

    1.什么是返回值 确定函数返回 2.获取函数返回值 2.函数的调用过程 变量的作用域 - 变量可以使用的范...

  • C语言 Blocks

    无参数无返回值的闭包 参数 返回值 ⚠️ blocks只能获取在函数之前定义的变量,不能获取之后的值 ⚠️ 不能在...

  • linux编写脚本指南

    linux命令作为返回值用反引号包裹的字符串,当作命令执行返回 当然也可以用$?获取返回值 shell解析json...

  • Android Kotlin协程

    launch函数 结果: async函数和launch类似,但是async返回值是defferd,可以阻塞获取结果...

网友评论

      本文标题:Shell 获取函数的返回值

      本文链接:https://www.haomeiwen.com/subject/ykdyyftx.html