您现在的位置是:网站首页> 编程资料编程资料
shell脚本返回值问题的解决_linux shell_
2023-05-26
395人已围观
简介 shell脚本返回值问题的解决_linux 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脚本连接oracle数据库的实现代码_linux shell_
- 详解Shell 脚本中 “$” 符号的多种用法_linux shell_
- shell 脚本自动搭建nfs服务的方法示例_linux shell_
- 使用shell脚本一键部署LNMP架构的方法_linux shell_
- Shell $?获取函数返回值或者上一个命令的退出状态_linux shell_
- Linux常用命令大全(超全面)_linux shell_
- 脚本批量检测网站是否存活_linux shell_
- telnet 命令使用方法大全_linux shell_
- shell脚本快速创建格式化磁盘与详细操作步骤_linux shell_
- Shell脚本入门之编写格式与执行方式的实现_linux shell_
