位置: 编程技术 - 正文

Linux Shell函数返回值(shell 函数 return)

发布时间:2024-02-27

推荐整理分享Linux Shell函数返回值(shell 函数 return),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell 函数返回,shell 函数 return,shell 返回,shell 函数返回变量,shell 返回命令结果,linux shell函数返回值,shell 返回,linux shell函数返回值,内容如对您有帮助,希望把文章链接给更多的朋友!

Shell函数返回值,一般有3种方式:return,argv,echo

1) return 语句shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。示例:

结果:mytest 1arg1 =

mytest 0arg1 =

mytest 2arg1 =

mytest 1 = arg1 = 1arg1 = 1

mytest 0 = arg1 = 0arg1 = 0mytest 0

if fasle

arg1 = 1mytest 1

arg1 = 0mytest 0

end

Linux Shell函数返回值(shell 函数 return)

先定义了一个函数mytest,根据它输入的参数是否为1来return 1或者return 0.获取函数的返回值通过调用函数,或者最后执行的值获得。另外,可以直接用函数的返回值用作if的判断。注意:return只能用来返回整数值,且和c的区别是返回为正确,其他的值为错误。

2) argv全局变量这种就类似于C语言中的全局变量(或环境变量)。示例:

结果:mytest2args 1return 0

g_var=1

函数mytest2通过修改全局变量的值,来返回结果。

注: 以上两个方法失效的时候以上介绍的这两种方法在一般情况下都是好使的,但也有例外。示例:

其中,test.txt 文件中的内容如下::kkk:yxb:test结果:yxbmytest3 here 1

yxbg_var=0mytest4 here 1

g_var=可以看到mytest3在return了以后其实没有直接返回,而是执行了循环体后的语句,同时看到mytest4中也是一样,同时,在mytest4中,对全局变量的修改也无济于事,全局变量的值根本就没有改变。这个是什么原因那?笔者认为,之所以return语句没有直接返回,是因为return语句是在管道中执行的,管道其实是另一个子进程,而return只是从子进程中返回而已,只是while语句结束了。而函数体之后的语句会继续执行。同理,全局变量在子进程中进行了修改,但是子进程的修改没有办法反应到父进程中,全局变量只是作为一个环境变量传入子进程,子进程修改自己的环境变量,不会影响到父进程。因此在写shell函数的时候,用到管道(cmd &后台进程也一样)的时候一定要清楚此刻是从什么地方返回。

3) echo 返回值其实在shell中,函数的返回值有一个非常安全的返回方式,即通过输出到标准输出返回。因为子进程会继承父进程的标准输出,因此,子进程的输出也就直接反应到父进程。因此不存在上面提到的由于管道导致返回值失效的情况。在外边只需要获取函数的返回值即可。示例:

结果:$&#; = 0result = 0

have yxb, result is 0这个方式虽然好使,但是有一点一定要注意,不能向标准输出一些不是结果的东西,比如调试信息,这些信息可以重定向到一个文件中解决,特别要注意的是,用到比如grep这样的命令的时候,一定要记得1>/dev/null 2>&1来避免这些命令的输出。

linux shell txt转换成html的实现代码 原理:awk命令,分割格式化的txt(txt文件格式以|分割开的)成数组,然后拼接成html格式(html-head-title-body-table)shell源码#!/bin/shfile_input='txt.log'file_output=

Linux 深入理解进程权限 Linux进程权限分析在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少。本文总结一下linux系统下进程权限问

Linux复制文件命令cp之使用解说 Linux下的命令有很多,其中有一个命令,我一直使用都存在问题,那就是cp命令了。每次使用该命令,都提示cp:omittingdirectiory错误。最后百度了一下才明

标签: shell 函数 return

本文链接地址:https://www.jiuchutong.com/biancheng/371488.html 转载请保留说明!

上一篇:深入理解Linux中的grep命令(深入linux内核架构与底层原理 pdf)

下一篇:linux shell txt转换成html的实现代码(shell脚本转换文件编码)

  • 金蝶软件中怎么增加固定资产
  • 中级报名的报考条件要求
  • 销售清单要装订吗
  • 财务凭证和预算凭证目录只能有一条数据
  • 计提个人部分保险
  • 营改增后小规模纳税人涉税账务处理
  • 委托代征税务
  • 应纳税所得额就是企业所得税吗
  • 政府给的慰问金叫什么
  • 一个公司帮另一个公司代付款
  • 注册资本金应该编入政府性基金预算吗
  • 高速公路通行费怎么计算的
  • 物业公司代收供暖费,可以开发票吗
  • 企业股权溢价转让会计分录
  • 已经作废了的发票怎么查
  • 跨行发报
  • 建筑业小规模纳税人认定标准
  • 一般纳税人交的增值税可以抵扣吗
  • 什么叫固定资产的确认
  • 无偿转让股权需要交什么税
  • 发票冲红后是否可以重开
  • linux系统的文件与目录操作
  • 已抵扣的发票怎么撤销
  • PHP:xml_set_object()的用法_XML解析器函数
  • 如何在旧的php系统中删除
  • 一次性补偿金在取得后间隔一个月申报可以吗
  • 行政事业单位转让不动产
  • thinkphp 多数据库
  • 公立医院增值税抵扣
  • cvpr2023最佳论文
  • php web socket
  • 微信支付开发需要什么条件
  • css中设置字体样式
  • Sublime Text 4 (Build 4143) 注册方法STEP BY STEP
  • vports命令怎么用
  • fsck命令详解
  • 专项应付款借方余额表示
  • 代理返点怎么算
  • 盘亏的固定资产是资产吗
  • 人工费没有发票咋入帐
  • 加计抵减四项服务是什么?
  • 网络编程知识
  • 专项应付款的账务处理
  • sql获取第一条记录的内容
  • 哪些企业适用于企业会计制度
  • 分包工程款的账务处理
  • db2with
  • 企业会计准则在建工程转固定资产
  • mysql组合
  • 购入的设备用于研发怎样记账
  • 离线开票时间超限怎么办 发票都已经报送
  • 预收账款计入应收账款怎么弄
  • 股东实收资本超额到位
  • 小规模附加税优惠政策最新2023
  • 保险公司收车船税返还手续费犯罪
  • 个人股权激励收入税率
  • 往来账项询证函怎么填写
  • sql server 2000安装包
  • win10系统怎么做全盘镜像
  • win10蓝屏stopcode
  • win8系统怎样
  • win7怎么连接手机上网
  • win10怎么把动图设置成壁纸
  • ,linux
  • opengl程序
  • node.js 模块
  • 逆向教程推荐知乎
  • js兼容ie
  • oracle shell脚本
  • 安卓退出界面
  • 在unity中单例的主要作用
  • nodejss
  • yarn功能
  • jquery click重复执行
  • 税务局电话客服人工服务
  • 深圳国税电子税务局网上办税服务厅
  • 如何践行中国精神论文
  • 国家税务总局并入财政部最新消息
  • 河北税务云办税厅官方
  • 汽车票用什么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号