如果学习过高级语言比如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脚本返回值问题的解决

本文地址: http://www.cppcns.com/os/linux/313195.html

shell中返回值是1为真还是假_shell脚本返回值问题的解决相关推荐

  1. shell中返回值是1为真还是假_shell脚本中判断上一个命令是否执行成功

    SQL Server 系列文章快速导航(SWF版) 一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面 ...

  2. shell中返回值是1为真还是假_肝!Shell 脚本编程最佳实践

    阅读本文大概需要 12.5 分钟. 来自:Myths https://blog.mythsman.com/2017/07/23/1/ 前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命 ...

  3. shell运行java去哪加载jar包_shell脚本启动jar包-jar文件怎么打开

    1.基于maven的springboot项目打包 2.到项目路径下对应target目录找到生成的jar 将之上传到linux系统上 3.对应shell脚本 ------脚本开始------ #!/bi ...

  4. 科普 | Shell中傻傻分不清楚的TOP3

    近来小姐姐又犯憨憨错误,问组内小伙伴export命令不会持久化环境变量吗?反正我是问出口了..然后小伙伴就甩给了我一个<The Linux Command Line>PDF链接.感谢老大不 ...

  5. shell 中的export作用(转载)

    接触BASH的export是将自定义变量变成系统环境变量):我在一个脚本文件中定义一个了变量,然后echo显示出它的值,可结果却不是这样,脚本执行完后用source+脚本文件就可以了,我试了一下果然可 ...

  6. SHELL中的变量和参数

    $    变量替换操作符. 只有在变量被声明,赋值,unset 或exported 或者是在变量代表一个signal 的时候, 变量才会是以本来的面目出现在脚本里.变量在被赋值的时候,可能需要使用&q ...

  7. 学习linux杂七杂八——关于shell中的变量

    var=value 变量定义并赋值,注意等号前后不能与空格相邻,如果需要有空格(其他特> 殊字符,如$,回车,",',\等)可用转义字符\进行转义. 变量命名规则同C语言. 变量值两端 ...

  8. SHELL中if的使用

    shell中if的使用 shell中if的基本使用 shell中if的基本使用 SHELL中if中条件表达式的使用 shell中if的整数比较 shell中if的浮点数比较 shell中if的字符比较 ...

  9. shell中source命令与sh命令的区别

    一.source命令 1.1 source命令的使用方法 source filename.sh 文件没有可执行权限时,也可以使用source命令执行. source命令是在当前shell中执行的,并未 ...

  10. shell中expect的用法

    shell中expect的用法 expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: ...

最新文章

  1. 新华三,定义服务器虚拟化市场新格局
  2. kohana task 编写计划任务
  3. UI 设计:如何做到理性?
  4. brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
  5. OpenCV放大视频Upscaling video
  6. 对话李飞飞,展望阿里云与MongoDB战略合作未来
  7. jquery 数组添加不重复数据
  8. sqoop2操作流程
  9. sql server 分页
  10. 快速幂(求A^B的最后三位数表示的整数(A^B的含义是A的B次方))(java)
  11. guassdb200 single node deployment
  12. mysql 全文检索 教程_mysql怎么做全文检索
  13. 红帽子linux系统下载服务器OS:Windows、Linux与Unix三分天下
  14. 编程模拟高尔顿钉板(正态分布)C++
  15. GAN的评价指标IS和FID
  16. java语言排序函数_Java语言的8大排序
  17. Resource exhausted: OOM when allocating tensor with shape[620,20000] and type float on /job:localhos
  18. 消防应急照明和疏散指示系统
  19. 简易理解设计模式之:责任链模式——OA中请假流程示例
  20. 明星讲师心石闪耀ArchSummit大会 | 手机淘宝构架演化实践

热门文章

  1. 【MTSP】基于matlab灰狼算法求解多旅行商问题(同始终点)【含Matlab源码 1564期】
  2. 毕设题目:Matlab语音加密
  3. 【优化算法】乌燕鸥优化算法(STOA)【含Matlab源码 1431期】
  4. 【元胞自动机】基于matlab激进策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1297期】
  5. 【背包问题】基于matlab遗传算法求解背包问题【含Matlab源码 578期】
  6. ai-人工智能的本质和未来_带有人工智能的动画电子设备-带来难以想象的结果...
  7. 深度学习去雨论文代码_将深度学习研究论文转换为有用的代码
  8. 聊天工具机器人开发_聊天机器人-精致的交流工具? 还是您的客户服务团队不可或缺的成员?...
  9. C++string基本概念
  10. python rarfile_Python中zipfile压缩文件模块的基本使用教程