【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进程是否正在运行
function is_nginx_running
{ps -ef | grep nginx | grep -v grep | grep -v $this_pid &>/tmp/nullif [ $? -eq 0 ];then# return 0,也可以省略0直接return,两个是等价returnelsereturn 1fi
}
# 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
doecho "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函数返回值
相关文章:
【linux】 Shell函数返回值
概述 return 返回 shell中通过return返回是有限制的,必须是数字,最大返回255,超过255,则从0开始计算。 通常仅返回0或1;0表示成功,1表示失败。通过echo 直接返回。 在没有return 语句,函数将以…...
面试:容器技术
目录 为什么需要 DevOpsDocker 是什么?Docker 与虚拟机有何不同?什么是 Docker 镜像?什么是 Docker 容器?Docker 容器有几种状态?解释一下 Dockerfile 的 ONBUILD 指令?什么是 Docker Swarm?如何…...
在Linux中nacos集群模式部署
一、安装 配置nacos 在Linux中建立一个nacos文件夹 mkdir nacos 把下载的压缩包拉入刚才创建好的nacos文件中 解压 tar -zxvf nacos-server-1.4.1\.tar.gz 修改配置文件 进入nacos文件中的conf文件的cluster.conf.example 修改cluster.conf.example文件 vim cluster.conf.exa…...
7天入门python系列之爬取热门小说项目实战,互联网的东西怎么算白嫖呢
第七天 Python项目实操 编者打算开一个python 初学主题的系列文章,用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python,这是一个紧凑的学习计划。但并不是不可完成的。 学到第7天说明你已经对python有了一…...
产品经理墨刀学习----注册页面
我们做的产品是一个校园论坛学习开发系统,目前才开始学习。 (一)流程图 (二)简单墨刀设计--注册页面 (1)有账号 (a)直接登录: (b)忘…...
算法通关村——归并排序
归并排序 1、归并排序原理 归并排序是一种很经典的分治策略。 归并排序(MERGE-SORT)简单来说就是将大的序列先视为若干小的数组,分成几个比较小的结构,然后是利用归并的思想实现的排序方法。将一个大的问题分解成一些小的问题分别求解ÿ…...
SDL2 播放音频数据(PCM)
1.简介 这里以常用的视频原始数据PCM数据为例,展示音频的播放。 SDL播放音频的流程如下: 初始化音频子系统:SDL_Init()。设置音频参数:SDL_AudioSpec。设置回调函数:SDL_AudioCallback。打开音频设备:SD…...
优秀智慧园区案例 - 重庆AI PARK智慧创意园区,先进智慧园区建设方案经验
一、项目背景 1、智慧园区是国家实现经济增长、产业升级的载体 智慧园区建设是城市智慧化创新发展的核心,在数智化升级和低碳化转型的经济发展双引擎的驱动下,十四五、数字经济的政策大力支持,以及人工智能、5G、大数据、区块链等技术的不断…...
如何编写一个Perl爬虫程序
要编写一个Perl爬虫程序,首先需要安装LWP::UserAgent模块。你可以使用cpan命令来安装该模块: cpan LWP::UserAgent 安装完成后,可以使用以下代码来编写爬虫程序: use LWP::UserAgent; use HTML::TreeBuilder; my $proxy_host …...
linux查看当前目录大小及磁盘大小
1、查看当前目录大小 du -sh ./*-h:以K,M,G为单位,提高信息的可读性 -s:仅显示总计 ./*:列出当前目录下的子项 2、查看磁盘大小 df -h还可以加个路径,仅查看当前目录所在的磁盘。例如&#x…...
windows系统pycharm程序通过urllib下载权重https报错解决
报错内容: raise URLError(unknown url type: %s % type) urllib.error.URLError: <urlopen error unknown url type: https> 解决办法记录: 1. 下载 pyopenssl : pip install pyopenssl 此时, import ssl 可以通过提示指导你安…...
Python数据结构: 列表(List)详解
在Python中,列表(List)是一种有序、可变的数据类型,被广泛用于存储和处理多个元素。列表是一种容器,可以包含任意数据类型的元素,包括数字、字符串、列表、字典等。本文将深入讨论列表的各个方面࿰…...
查找py源代码目录
要查找Python源代码目录,你可以按照以下步骤进行操作: 打开终端或命令提示符窗口。输入以下命令来查找Python源代码目录: python -m site该命令将显示Python安装位置的相关信息,包括site-packages目录路径。该目录通常包含Pytho…...
React Virtual DOM及Diff算法
JSX到底是什么 使用React就一定会写JSX,JSX到底是什么呢?它是一种JavaScript语法的扩展,React使用它来描述用户界面长成什么样子,虽然它看起来非常像HTML,但他确实是javaScript,在React代码执行之前&#…...
Spark通过三种方式创建DataFrame
通过toDF方法创建DataFrame 通过toDF的方法创建 集合rdd中元素类型是样例类的时候,转成DataFrame之后列名默认是属性名集合rdd中元素类型是元组的时候,转成DataFrame之后列名默认就是_N集合rdd中元素类型是元组/样例类的时候,转成DataFrame…...
【坑】idea终端下执行maven命令行报错:mvn clean install -Dspring.profiles.active=dev
直接看报错信息 解决方法 方法一 命令改为:mvn clean install -Dspring.profiles.activedev方法二 使用 cmd 进入命令行执行:mvn clean install -Dspring.profiles.activedev在新版本中的idea终端已经默认使用了类似windons10下的PowerShell窗口的风格…...
Linux下mysql安装配置教程
MySQL是一种常用的关系型数据库管理系统,安装配置MySQL需经历以下步骤: 1.下载MySQL 首先,你需要从MySQL官网下载MySQL的压缩包。在下载页面中,你需要选择正确的系统和版本(例如Windows或Linux,32位或64位…...
在 Electron上安装better-sqlite3出错
错误问题 一直卡npm install --global windows-build-tools --vs2015 这一步 解决 安装:pnpm install better-sqlite3 --save安装命令 pnpm i -D electron-rebuild 手动运行:node_modules/.bin/electron-rebuild -f -w better-sqlite3 我直接在packa…...
利用网络管理解决方案简化网络运维
当今的网络正朝着提高敏捷性和动态功能的方向发展,以支持高级网络要求和关键业务流程,这导致 IT 基础架构也跨越无线、虚拟和混合环境。但是,随着网络的快速发展,如果没有合适的解决方案,IT 管理员很难管理它们&#x…...
C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录
目录 一、应用程序设计 二、应用程序源码 三、生成效果 前文作者发布了在.NET Framework4.8 控制台应用中通过EF访问已有数据库,事实上在.NET Framework4.8 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样,数据库EF模型和上下文…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
