• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell脚本返回值问题的解决

    如果学习过高级语言比如java和c语言等,此时你要是获取一个函数的返回值,直接在函数里面写上return即可,然后在函数执行时将返回结果赋值给某个变量即可。但是在shell脚本中限制较多,因此如果我们想实现这样的功能的话,稍微困难一些,本人在实践中做了一些该方面的实验,并做笔记分享。

    shell脚本的返回值可以使用return参数,但是return只能返回整数类型的值。因此实现比较复杂的功能的话shell脚本可能不太友好。

    比如下面这个例子:

    #!/bin/bash
    function in_path(){
        cmd=$1
        path=$2
        oldIFS=$IFS
        IFS=":"
        retval=1
        for directory in $path
        do
         if [ -x $directory/$cmd ];then
            return 0
         fi
        done
        IFS=$oldIFS
        return 1
    }
    in_path ls $PATH
    if [ $? -eq 0 ];then
      echo "yes"
    else
      echo "no"
    fi

    这个脚本实现的功能是在PATH环境变量中查找ls命令是否存在且可执行,如果是,就返回0,否则就返回1。返回0表示为真,此时if语句判断为真的话输出yes,为0的话输出no。

    有时候希望实现的功能是返回一些其他类型的变量值,比如字符串等等,此时我们在shell脚本中就不能再使用return关键字了,可以这么写。

    #!/bin/bash
    function in_path(){
        cmd=$1
        path=$2
        oldIFS=$IFS
        IFS=":"
        retval=1
        for directory in $path
        do
         if [ -x $directory/$cmd ];then
            echo yes
         fi
        done
        IFS=$oldIFS
        echo no
    }
    aa=$(in_path $1 $PATH)
    if [[ $aa =~ "yes" ]];then
        echo "the path has this bianliang"
    else
        echo "no no no"
    fi

    这也是一种实现获取返回值结果的功能,还是挺好用的。但是如果你要是把if语句替换成case语句使用的话,那么函数中的echo语句和return语句返回的这个逻辑要明白的,和return不一样的,比如:

    到此这篇关于shell脚本返回值问题的解决的文章就介绍到这了,更多相关shell脚本返回值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Shell中关于处理方法返回值问题详解
    • Linux Shell函数返回值
    • Shell中函数返回值超出问题
    • linux shell 自定义函数方法(定义、返回值、变量作用域)
    • shell脚本中执行python脚本并接收其返回值的例子
    • linux shell自定义函数(定义、返回值、变量作用域)介绍
    上一篇:Shell脚本连接oracle数据库的实现代码
    下一篇:Linux下科学计数法(e)转化为数字的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell脚本返回值问题的解决 shell,脚本,返回,值问,题的,