shell编程-02-变量作用域

news2024/10/6 10:57:23

作用域

局部变量:变量只能在函数内部使用
全局变量:变量可以在当前 Shell 进程中使用
环境变量:变量还可以在子进程中使用

局部变量

函数中定义的变量默认是全局变量,在定义时加上local命令,此时该变量就成了局部变量

#!/bin/bash
b=0
a=0
function func(){
       a=99
       local b=100
}
func
echo $a,$b

在这里插入图片描述

全局变量

脚本执行

  1. 作为程序执行,需要修改权限(给脚本添加执行权限)
    通过这种方式运行脚本,脚本文件第一行的#!/bin/bash一定要写对
    执行方式:
    脚本名:如 ./02.sh
    2.当前进程中运行 Shell 脚本
    source 命令: 它会读取脚本文件中的代码,并依次强制执行所有语句
    执行方式
    source filename
    . filename
#!/bin/bash
echo $a
b=0
a=0
function func(){
        a=99
        local b=100
}
func
echo $a,$b

在这里插入图片描述

环境变量

全局变量只在当前 Shell 进程中有效,对其它 Shell 进程和子进程都无效。如果使用export命令将全局变量导出,那么它就在所有的子进程中也有效了,这称为“环境变量”。
环境变量被创建时所处的 Shell 进程称为父进程,如果在父进程中再创建一个新的进程来执行 Shell 命令,那么这个新的进程被称作 Shell 子进程。

创建 Shell 子进程最简单的方式是运行 bash 命令,通过exit命令可以一层一层地退出 Shell

a="hello"
echo $a
bash
echo $a
exit
echo $a

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring系列-10 事务机制

背景: 在 事务-1 事务隔离级别和Spring事务传播机制 中对事务的特性、隔离级别、Spring事务的传播机制结合案例进行了分析;在 事务-2 Spring与Mybatis事务实现原理 中对JDBC、Mybatis、Spring整合Mybatis实现事务的原理结合框架源码进行了介绍&#xff…

如何免费使用GPT-4模型

一、引言 OpenAI 最近发布了ChatGPT最新的 GPT-4 模型,这是 OpenAI 迄今为止发布的最强大的语言模型系统。它不仅有视觉能力,而且是多模态的,可以解释文本和生成图像。此外,它在推理测试中表现良好,可以支持大约26种不…

Redis的ZipList和QuickList和SkipList和RedisObject

ZipList:压缩列表,为了节省内存而设计的一种数据结构 ZipList是一种特殊的双端链表,是由一系列的特殊编码的连续内存块组成,不需要通过指针来进行寻址来找到各个节点,可以在任意一端进行压入或者是弹出操作,并且该操作…

RocketMQ的学习历程(5)----broker内部设计

文章目录 概要整体架构流程技术名词解释CommitLog和ConsumeQueue页缓存和内存映射刷盘机制 小结 概要 在首个学习历程中,我们已经了解了,RokctMQ简单的工作流程。 如果想要更深的理解RokcetMQ消息处理的流程,broker内部流程的理解是必要的&…

【挑战全站最全】Linux系统的安装与配置教程——以CentOS为例

🚀作者:那个叫马尔的大夫🚀 ⭐专栏:操作系统⭐ 🌼内容:主要分享一些关于Linux操作系统的知识 🥧不忘初心,砥砺前行~ 目录 一、用到的软件环境——虚拟机软件(必需&#…

调用函数不仅仅只是传递正确的参数类型

这里有一个新手犯下的一个典型错误。 假设,我们想调用这个函数,GetBinaryType。 void sample() { if (GetBinaryType(TEXT(“explorer.exe”), ????)) { … } } 请问,这里的问号处应该传递什么类型的参数?你可能会说&#x…

python、pyqt5实现人脸检测、性别和年龄预测

摘要:这篇博文介绍基于opencv:DNN模块自带的残差网络的人脸、性别、年龄识别系统,系统程序由OpenCv, PyQt5的库实现。如图系统可通过摄像头获取实时画面并识别其中的人脸表情,也可以通过读取图片识别,本文提供完整的程…

设计模式入门:策略模式

现有一套模拟鸭子游戏,可以一边游泳,一边呱呱叫。 每种鸭子都会呱呱叫和游泳,只是外观不同。因此,quack和swim放在父类中,display放在子类中实现。 增加新的功能:鸭子飞翔。 1 我们可能想到直接在父类中增…

LeetCode——最小化字符串长度

目录 一、题目 二、题目解读 三、代码 1、set去重 2、用一个二进制数记录每个字母是否出现过 一、题目 6462. 最小化字符串长度 - 力扣(Leetcode) 给你一个下标从 0 开始的字符串 s ,重复执行下述操作 任意 次: 在字符串…

聊一聊数据库事务的那些事(隔离级别,传播行为)

我们平时使用事务的时候,可能脑子里面想到和事务有关的知识点无非就是,ACID,事务隔离级别那一套,使用的事务也就是是通过注解的形式,或者手动开启事务。更细致一点的问题或许没有深究下去,比如事务的传播行…

STM32F407的PWM

文章目录 32的PWM资源PWM输出原理捕获/比较模式寄存器(TIMx_CCMR1/2)捕获/比较使能寄存器(TIMx_CCER)捕获/比较寄存器(TIMx_CCR1~4) 库函数版本的PWM波输出开启 TIM3 时钟以及复用功能时钟置 ,配…

对CT数据进行最小最大值归一化(Min-Max Normalization)和消除过暗过亮值处理

文章目录 PIL库的图像失真问题使用最小最大值归一化(Min-Max Normalization)预处理消除过暗过亮值pytorch中对tensor使用最小最大值归一化处理(torchvision.transforms) 我们在处理CT图像时(以dcm格式为例)…

全栈小程序开发路线

目录 个人心得: 我的学习路线 个人心得: 我擅长的是小程序开发和技术变现,从2021年至今开发上线20于个小程序,矩阵用户超过10万,变现10万左右。 以下是部分小程序截图,追风口做的小程序,基本…

「Win」Windows注册表介绍与操作

✨博客主页:何曾参静谧的博客 📌文章专栏:「Win」Windows程序设计 相关术语 Windows的注册表:是一个重要的系统组件,用于存储操作系统和应用程序的配置信息。它类似于一个数据库,包含了各种键值对、参数、设…

Vue报错:Error: error:0308010C:digital envelope routines::unsupported解决

问题 node 环境 Node.js v18.14.2 使用npm start.出现以下报错 Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (F:\RuoYi-Cloud\CourseSched…

SWAT模型系统学习(建模方法、实例应用、高级进阶)

目前,水环境问题逐渐成为制约社会经济和环境可持续发展的重要因素。根据国内外研究表明,受全球环境变化和经济快速发展的影响,面源污染已逐渐成为水环境污染的第一因素。但面源污染由于具有排放分散、隐蔽,排污随机、不确定、不易…

搜索算法(三) 回溯法

1.回溯法 回溯法可以理解成一种特殊的深度优先算法,比起普通的DFS,多了还原当前节点的一步。 修改当前节点、递归子节点、还原当前节点。 本质是一种试错的思想。 维基百科: 2.例题 1) 力扣https://leetcode.cn/problems/pe…

树莓派安装系统

0. 实验准备 树莓派一个,TF卡(4GB以上)一个,读卡器一个 1. 使用官方提供的工具 在搜索引擎中搜索树莓派(不要用百度,建议使用必应的国际版进行搜索),我这里直接放上树莓派官方超链…

深入篇【Linux】学习必备:理解【Linux软件包管理器】yum + yum的具体使用 + yum下载的有趣指令

这里写目录标题 Ⅰ.Linux软件包管理器yum①.什么是软件包/什么是yum②.linux的软件生态与yum源③.关于rzsz Ⅱ.yum基本指令①.查看软件②.安装软件③.卸载软件 Ⅲ.yum下载的好玩指令①.sl②.linux_logo③.elinks Ⅰ.Linux软件包管理器yum yum 是一个 Shell 前端软件包管理器。基…

C++ 多态 最详细图文+代码讲解

感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏【C进阶】 ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 回顾 上篇文章,我们学习了继承的相关知识,详细解刨了继承中的各种细节,而本章内容将在继承的基础上学习多态 多态的概念…