zoukankan      html  css  js  c++  java
  • shell 函数返回值的方法

    摘自:http://hi.baidu.com/2enjoy/blog/item/5e0e335a6e22f4cd9c8204e5.html

    shell 函数返回值的方法 
     
    从shell函数中返回的数值的方法不多,有本书书里说只有写入文件或者全局变量。(The only way to return a value to the calling program is to write it to a file (or standardoutput) and have the calling program read (or assign) the value back into a variable.  )本文总结了即总方法:1.echo 法, 2.全局变量法,并给出了实例。其他方法以后再慢慢补充。 
     
    1. echo 法 
     
    在被调用函数中需要返回的值,使用echo将其显示至stdout,然后在调用的地方再使用`func var1`获得stdout中的值,获得值可以直接赋值给变量。例如: 
     
      
     
    #!/bin/bash 
     
    # Author: Aaron.Cheng 
    # Date:  2007-1-10 
       # Check 
     
    # Core  
    #  echo法,返回一个字符串的长度 
    varCnt() 

      var=$1   ret=0 
      if [ "$var" != "" ] ; then 
        ret=${#var}   
      fi 
      echo $ret 

     
    main() 

      printf "varCnt's 's return value is %s "  `varCnt ""` 
      printf "varCnt's 's return value is %s "  `varCnt "1234"` 

     
    main 
      
    # Clear 
    exit  0 

     


    2. 全局变量法 
     
      这个比较简单,声明一个全局变量 declare -i g_ret ,在function的返回值存储在全局变量中。调用处在函数执行完后,使用就可以了。例如: 
     
    #!/bin/bash 
     
    # Author: Aaron.Cheng 
    # Date:  2007-1-10 
     
    # Check 
     
    # Core  
    #  echo法,返回一个字符串的长度 
    declare -i g_ret=0 
    varCntGlobeVar() 

      var=$1    
      if [ "$var" != "" ] ; then 
        g_ret=${#var}   
      fi 

     
    main() 

      varCntGlobeVar "" 
      printf "varCntGlobeVar's 's return value is %d "  $g_ret 
      varCntGlobeVar "1234
      printf "varCntGlobeVar's 's return value is %d "  $g_ret 

     
    main 
      
    # Clear 
    exit  

  • 相关阅读:
    2019暑假——区域赛真题讲解
    2019暑假杭电训练赛(补题及笔记)
    2019暑假牛客训练赛(补题及笔记)
    网络流——最大流-Dinic算法
    SPFA
    K短路(A*+SPFA)
    从业务架构视角聊聊大型商业银行的转型实践
    互联网 40 岁失业是一个无法打破的魔咒吗
    Hadoop集群中出现的节点有哪些作用
    CDH集群的角色划分
  • 原文地址:https://www.cnblogs.com/shicf/p/2364367.html
Copyright © 2011-2022 走看看