0


【linux】 Shell函数返回值

概述

  • return 返回 shell中通过return返回是有限制的,必须是数字,最大返回255,超过255,则从0开始计算。通常仅返回0或1;0表示成功,1表示失败
  • 通过echo 直接返回。 在没有return 语句,函数将以最后一条命令运行结果,作为返回值。因此,通常在最后一行以echo “xxx”语句作为返回值。 如果有多条echo,则以最后一个echo为返回值。 通常用于返回数据,比如一个字符串值或者列表值

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

(二) echo使用场景

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

#!/bin/bash# 获取整个Linux系统上所拥有的所有用户functionget_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=1foruserin$user_listdoecho"This $index user is : $user"index=$(($index+1))done# 运行脚本
~ % sh30.echo_sys_user.sh
This 1 user is : nobody
This 2 user is : root
... ...
This 109 user is : oahd

参考

Shell函数返回值

标签: linux shell 返回值

本文转载自: https://blog.csdn.net/m0_45406092/article/details/134420004
版权归原作者 云川之下 所有, 如有侵权,请联系我们删除。

“【linux】 Shell函数返回值”的评论:

还没有评论