Shell中函数的两种变量

这里的两种变量是针对于函数来讲的,非脚本

(1) 全局变量

函数内部定义的变量

特点:

脚本中主代码可以获取。

注意!!!:

脚本中(函数外部)定义的变量,在本脚本的函数内也可获取。

提示:

脚本中(函数外部)定义的变量,对于此脚本来说是局部变量。

(2) 局部变量

local 变量名

仅在函数内使用,函数外部获取不到。

案例:

#!/bin/bash

#shell中函数的全局变量和局部变量

#auth:odysee

#定义脚本主代码变量

name=odysee

#定义函数

print1()

{

#定义函数中的全局变量,脚本主代码可以获取

sno=20144550

#定义函数中的局部变量,脚本主代码获取不到

local class=2

#获取脚本主代码变量

echo "${name} === name"

}

#调用函数

print1

#获取函数中的全局变量

echo "${sno} === sno"

#获取函数中的局部变量,看是否打印

echo "${class} === class"

执行脚本

[odysee@kingdom shellFiles]$ bash function_1.sh

//函数内获取脚本变量

odysee === name

//函数外部可以获取函数全局变量

20144550 === sno

//这里是获取不到函数内的局部变量

=== class

测试完成

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

对于局部变量_浅谈Shell函数中全局变量和局部变量相关推荐

  1. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  2. java扫码枪键盘_浅谈在react中如何实现扫码枪输入

    触发原理 原理就是监听键盘输入,比如扫一个为6970596130126的69条形码,用扫码枪扫一下会在光标位置依次输出: 6 9 7 0 5 9 6 1 3 0 2 6 但这不是完整的,所以需要写一个 ...

  3. mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  4. python中if和elif的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  5. python中分支语句elif与else的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  6. java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出

    在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...

  7. mysql创建存储过程意义_浅谈一下mySql中创建存储过程

    首先说一下为什么要使用存储过程,存储过程是在数据库中预编译的程序代码,其执行效率显然要比从程序端传过去的sql语句要高的多,这样既可以节省网络带宽,又可以加快sql的执行速度,可以很好的提高系统的性能 ...

  8. this ts 方法获取_浅谈 JavaScript / TS 中的 this

    在 JavaScript 中 this 所指向的对象与运行时上下文进行绑定,这就会导致在不同场景下,函数最终运行结果可能不尽相同. 非对象/实例化环境 非对象/实例化环境指的是普通的函数( 没有通过原 ...

  9. css中如何实现帧布局_浅谈web前端中的表格布局与CSS盒子布局

    在web前端设计排版时我们可能会用到表格布局和div+CSS布局,但现在主要使用后者,为何?今天我们来谈一谈两者之间的发展和原理. 话不多说下面来干货 发展过程 上个世纪Web开发人员流行使用表格进行 ...

最新文章

  1. cf英文名字格式好看的_cf英文名字大全_Michael、
  2. openStack controller 管理网口TX数据量非常大 网络总是丢包
  3. Android EventBus 3.0.0 使用总结
  4. [转]httpclient编码
  5. Linux 远程桌面 rdesktop 软件
  6. Linus通过了Linux中避免master/slave等术语的提案
  7. php判断ipv6是否在范围内,[PHP] IPv6檢查IP是否在某個網段內 mtachcidr6
  8. 代替oracle dblink,oracle dblink
  9. ldirectord实现高可用负载集群
  10. IDEA设置注释配置时获取不到参数的解决办法
  11. 交叉熵损失函数(Cross Entropy Error Function)与均方差损失函数(Mean Squared Error)
  12. 去年的今天我们举行了婚礼
  13. linux安装 soapui_在Linux/Unix上安装开源测试工具SoapUI
  14. matlab界面语言修改
  15. 成为管理层必会的技能之一!利用Python打造一款员工管理系统~
  16. 锂电池管理系统(BMS)-市场现状及未来发展趋势
  17. TalkingData Ad Tracking开启反作弊模式
  18. 树莓派pico从零开始的入门(一)
  19. 太原市消防工程师培训_关于消防工程师的满满干货
  20. mysql numeric int_关于mysql数据库的数据类型numeric和decimal_MySQL

热门文章

  1. mysql中加入正则表达式,mysql中的正则表达式搜索
  2. fsmc同步通信设置_微服务模式-同步与异步
  3. 添加空值_Python基础 | 0x8空值、布尔类型、数字类型
  4. linux清空输入框,Linux uniq 命令
  5. 绝美自然风光风景壁纸,心旷必然神怡
  6. 背景素材|令人惊讶水彩背景,新尝试
  7. 简约几何海报背景设计素材,可盐可甜
  8. speedtest命令行linux,Linux或者Mac下命令行speedtest测试网络速度
  9. python add_subplot_Python使用add_subplot与subplot画子图操作
  10. html怎么根据控IE制台找错误,IE调试网页之三:控制台查看错误和状态