Shell函数返回值方式

目录
  • 1、返回值的方式:
  • 2、return和echo使用场景区别:
  • 3、场景示例

1、返回值的方式:

  • 方法一:return
  • 方法二: echo

2、return和echo使用场景区别:

(1).使用return返回值:

  • 使用return返回值,只能返回1-255的整数
  • 函数使用return返回值,通常只是用来供其他地方调用获取状态,因此通常仅返回0或1;0表示成功,1表示失败

(2).使用echo返回值:

  • 使用echo可以返回任何字符串结果
  • 通常用于返回数据,比如一个字符串值或者列表值

3、场景示例

(一) return使用场景

函数通过return返回一个整数,这种场景通常是用来做判断的,也就是说在执行完函数之后,需要根据它的返回值做判断,通0表示成功,非0都是表示失败。

#!/bin/bash
 
this_pid=$$
# 判断nginx进程是否正在运行
function is_nginx_running
{
    ps -ef | grep nginx | grep -v grep | grep -v $this_pid &>/tmp/null
    if [ $? -eq 0 ];then
        # return 0,也可以省略0直接return,两个是等价
        return
    else
        return 1
    fi
}
# return在函数中的返回值,只是用来做状态判断的,根据状态值做下一步判断
# 函数的返回值为0时,表示nginx服务运行正常输出 && 后字符串,否则返回 ||后字符串
is_nginx_running && echo "Nginx is running" || echo "Nginx is stoped"
 
 
# 运行脚本
~ % sh 29.echo_return_nginx.sh
Nginx is stoped
~ % sudo nginx  # Mac 使用,Linux为 systemctl start nginx 
~ % sh 29.echo_return_nginx.sh
Nginx is running

(二) echo使用场景

函数通过echo返回值,通常是返回数据用的,以供程序的其它地方使用。

#!/bin/bash
 
# 获取整个Linux系统上所拥有的所有用户
function get_users
{
    # users=`cat /etc/passwd | cut -d: -f1` # linux使用
    # Mac 使用
    users=`cat /etc/passwd | tail -n+11 | cut -d: -f1 | cut -d_ -f2`
    echo $users
}
 
# 执行该函数,返回值为用户列表
# get_users
 
# 遍历用户列表对用户名做处理
user_list=`get_users`
index=1
for user in $user_list
do
    echo "This $index user is : $user"
    index=$(($index+1))
done
 
 
# 运行脚本
~ % sh 30.echo_sys_user.sh
This 1 user is : nobody
This 2 user is : root
... ...
This 109 user is : oahd

到此这篇关于Shell函数返回值方式的文章就介绍到这了,更多相关Shell函数返回值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Shell函数返回值方式

    目录 1.返回值的方式: 2.return和echo使用场景区别: 3.场景示例 1.返回值的方式: 方法一:return 方法二: echo 2.return和echo使用场景区别: (1).使用return返回值: 使用return返回值,只能返回1-255的整数 函数使用return返回值,通常只是用来供其他地方调用获取状态,因此通常仅返回0或1:0表示成功,1表示失败 (2).使用echo返回值: 使用echo可以返回任何字符串结果 通常用于返回数据,比如一个字符串值或者列表值 3.场景

  • Linux Shell函数返回值

    Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回. 示例: #!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 fi } echo echo "mytest 1" mytest 1 e

  • Shell $?获取函数返回值或者上一个命令的退出状态

    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1,这和C语言的 main() 函数是类似的. 不过,也有一些命令返回其他值,表示不同类型的错误. 1) $? 获取上一个命令的退出状态 编写下面的代码,并保存为 test.sh: #!/bin/bash if [ "$1" == 100 ] then exit 0 #参数正确,退出状态为0

  • C/C++ 引用作为函数的返回值方式

    目录 case1:用返回值方式调用函数 case2:用函数的返回值初始化引用的方式调用函数 case3:用返回引用的方式调用函数 case4:用函数返回的引用作为新引用的初始化值的方式来调用函数 用引用实现多态 函数中返回引用和返回值的区别 主要讨论下面两个函数的区别 说明一下函数返回时 语法:类型 &函数名(形参列表){ 函数体 } 特别注意: 1.引用作为函数的返回值时,必须在定义函数时在函数名前将& 2.用引用作函数的返回值的最大的好处是在内存中不产生返回值的副本 //代码来源:RU

  • python使用threading获取线程函数返回值的实现方法

    threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类:  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local. threading 模块提供的常用方法: threading.currentThread(): 返回当前的线程变量. threading.enumera

  • 关于numpy.where()函数 返回值的解释

    近日用到numpy.where()函数,大部分使用方式都能理解,但是在看 >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) 的时候就懵逼了,为什么是两个数组? 后来才发现返回值给的其实是坐标,以上式为例,返回值其实是 x[2, 0], x[2, 1], x[2, 2] 即对于该数组x,返回值为两个数组a.b,其中满足条件的值在

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

    如果学习过高级语言比如java和c语言等,此时你要是获取一个函数的返回值,直接在函数里面写上return即可,然后在函数执行时将返回结果赋值给某个变量即可.但是在shell脚本中限制较多,因此如果我们想实现这样的功能的话,稍微困难一些,本人在实践中做了一些该方面的实验,并做笔记分享. shell脚本的返回值可以使用return参数,但是return只能返回整数类型的值.因此实现比较复杂的功能的话shell脚本可能不太友好. 比如下面这个例子: #!/bin/bash function in_pa

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

    应用场景 在一些应用中(比如Jenkins),嵌入了shell脚本,系统通过shell脚本的返回值来判断执行结果,如果返回值非0,则发生了执行错误,需要中止执行,这在使用单个命令时没有问题.然而,在shell (A)脚本又调用了shell脚本文件(B )时,当被调用的shell脚本B执行过程中发生了错误时,系统不会认为B有问题,而是继续往下执行.这样就会掩盖了问题. 解决 在被调用的shell脚本B中返回错误代码,当被调用的shell脚本B中发生错误时,捕捉该错误代码,然后返回该错误代码,这样系

  • Python中return函数返回值实例用法

    在学习return函数时候,还是要知道了解它最主要的函数作用,比如,怎么去实现返回一个值,另外还有就是我们经常会用到的使用return能够进行多值输出,这才是我们需要抓住知识的重点,针对上述所提及的内容,都可以来往下看文章,答案都在文章内容获取哦~ return 添加返回值 return 显示返回对象 返回值接受:value = func() 例子:计算学成最高分 listv = [90,80,88,77,66] # 分数计算return高分 def scoreCalculate(values)

  • C语言之函数返回值与参数传递案例教程

    C语言函数返回值与参数传递 一:参数传递 C语言的函数中必不可少的就是参数传递,可以采用传值和传指针两种方式. 1.传值的形式:只是将参数值的拷贝传给函数,并非参数本体如: int test(int x,int y) { x=2*y; return x; } int main(void) { int a=0,b=5; printf("%d,%d\n\r",test(a,b),a); return 0; } 运行结果为: 10,0 即传值方式只可以将实参传递给函数,不可以改变实参本身.

随机推荐