shell脚本返回值问题的解决
2020-06-20 11:47
1026 查看
如果学习过高级语言比如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脚本返回值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- redhat下使用mysql,python,redis,httpsqs,shell脚本开机自启动的一些问题与解决
- shell 脚本 exit 1 报错:numeric argument required问题解决
- 【Mac】解决jenkins执行shell脚本等场景中遇见的权限不足问题
- jenkins结合svn检测版本变化部署项目的shell脚本和无法启动tomcat解决办法等问题
- c语言中调用shell脚本返回值问题分析
- ssh、scp的使用,以及shell脚本解决scp需要输入密码的问题
- 解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题
- 分享下 写shell脚本遇到的问题 和解决办法
- 解决 shell脚本中SCP命令需要输入密码的问题
- Linux执行shell脚本提示文件找不到问题解决办法
- 使用eval命令解决shell脚本中函数嵌套调用中的参数问题
- shell脚本中解决SCP命令需要输入密码的问题
- shell脚本中解决SCP命令需要输入密码的问题
- 通过sudo解决php执行shell脚本的权限问题
- shell 脚本 exit 1 报错:numeric argument required问题解决
- 通过脚本案例学习shell(一)如何通过复杂锁脚本解决脚本正在运行或者被意外中断问题 推荐
- Linux下shell脚本在crontab中一个周期执行不完,下周期任务被重复执行的问题解决
- 解决shell脚本参数传递含有空格的问题
- Ubuntu学习总结-08 Ubuntu运行Shell脚本报 shell /bin/bash^M: bad interpreter错误问题解决