我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell脚本返回值问题的解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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
  bpJDbu  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=bpJDbu$2
    oldIFS=$IFS
    IFS=":"
    retval=1
    for directory in $path
    do
     if [ -x $dibpJDburectory/$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脚本返回值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

shell脚本返回值问题的解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

shell脚本返回值问题的解决

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

如何解决Shell中函数返回值超出问题

这篇文章主要介绍“如何解决Shell中函数返回值超出问题”,在日常操作中,相信很多人在如何解决Shell中函数返回值超出问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决Shell中函数返回值超出问题
2023-06-09

解决python多线程的返回值问题

前几天看了下python的多线程,但是发现创建的线程得不到函数的返回值,查阅资料发现需要重写Thread类,直接上代码。import threadingimport time"""重新定义带返回值的线程类"""class MyThread(
2023-01-31

Shell中函数返回值超出问题

1、前言快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了。为了鞭策自己成长,还是要坚持写写博客,记录自己的成长。 2、shell函数介绍 语法:[ function ] funname [()]{action;[return
2022-06-04

shell脚本返回值及其使用场景的实现

应用场景在一些应用中(比如Jenkins),嵌入了shell脚本,系统通过shell脚本的返回值来判断执行结果,如果返回值非0,则发生了执行错误,需要中止执行,这在使用单个命令时没有问题。然而,在shell (A)脚本又调用了shell脚本
2022-06-04

怎么在shell脚本中执行python脚本并接收其返回值

这篇文章主要介绍“怎么在shell脚本中执行python脚本并接收其返回值”,在日常操作中,相信很多人在怎么在shell脚本中执行python脚本并接收其返回值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎
2023-06-09

如何解决php curl 没有返回值的问题

php curl没有返回值的解决办法:1、打开相应的PHP代码文件;2、通过“curl_setopt($ch,CURLOPT_URL,$get_token_url);curl_setopt();...”代码解决即可。
2015-01-22

怎么解决php curl没有返回值的问题

本篇内容介绍了“怎么解决php curl没有返回值的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php curl没有返回值的解决办法:
2023-06-22

利用Shell 脚本解决DDOS攻击问题

思路:主要利用 awk ,if结构,sort,uniq#!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | sort -rn | uniq -c >ip_count.l
2022-06-04

shell脚本返回值及其使用场景的实现方法

小编给大家分享一下shell脚本返回值及其使用场景的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!应用场景在一些应用中(比如Jenkins),嵌入了she
2023-06-09

shell脚本返回值可以使用什么参数实现

这篇文章主要介绍shell脚本返回值可以使用什么参数实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell脚本的返回值可以使用return参数,但是return只能返回整数类型的值。因此实现比较复杂的功能的话s
2023-06-09

详解Shell脚本中^M的问题和解决方案

目录^M 是什么?本质原因常用工具在开发过程中,有时候不小心将Windows本地创建的shell脚本(以 .sh 结尾的脚本),传到linux系统中,通过 vi或者view命令查看文件时,发现在末尾发现出现了很多^M字符。 ^M 是什么?
2022-06-05

js递归函数返回值问题如何解决

在JavaScript中,递归函数的返回值问题可以通过以下方法解决:1. 使用全局变量:定义一个全局变量,递归函数在每次调用时更新全局变量的值,最后返回全局变量的值。这种方法简单,但需要注意全局变量的使用可能会引起命名冲突或其他问题。```
2023-09-13

如何解决 shell 脚本重复执行的问题

简介flock 是文件锁命令,它可以保证linux系统上进程之间安全的访问临界资源,在shell脚本中,可以用来控制逻辑的互斥性 实例1现有脚本 a.sh, 内容如下#!/bin/bashecho "[`date +'%Y-%m-%d %H
2022-06-04

java递归函数返回值问题怎么解决

在递归函数中,可以使用一个参数或者一个全局变量来保存计算结果,然后在递归调用的过程中更新这个参数或者变量的值,最终返回最终的结果。例如,以下是一个计算阶乘的递归函数的示例:```javapublic class Main {public s
2023-09-26

如何解决jackson序列化和feign返回值的问题

这篇文章给大家分享的是有关如何解决jackson序列化和feign返回值的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。jackson序列化和feign返回值jackson注意点被序列化/反序列化的实体a.必
2023-06-29

编程热搜

目录