shell编程-02-变量作用域

news/2024/11/23 9:14:28/

作用域

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

局部变量

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

#!/bin/bash
b=0
a=0
function func(){a=99local 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=99local 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.ppmy.cn/news/209047.html

相关文章

VScode远程连接虚拟机(ubuntu系统)

文章目录 1. Windows端安装VScode2. 安装远程登录插件3. 配置Remote-SSH插件关于关闭后如何打开该配置文件 4. 测试ubuntu与windows可否ping通5. 在Ubuntu中安装 SSH1.检查是否安装ssh-server2.安装openssh-server3.查看ssh服务是否启动4.Ubuntu中配置openssh-server开机自动启…

从美图手机跨界颐和园,看智能手机如何玩IP定制才能C位出道?

6月27日美图手机在北京颐和园发布美图T9标准版,并首次与颐和园合作推出美图T9颐和园限量版,其“机身图案灵感源自中国传统色彩——黛绿与碧绿,缀以朱砂,山为黛,水为碧,朱砂为红,宛如一幅山水墨&…

莱卡TG0020-M8读卡器单片机开发

1.1 概述 本模块属 RFID 超小型 IC(Mifare1/TypeA/14443A)卡读卡模块,可单独使用,也可二次开发。可选接口有(miniUSB 接口,RS232 串口,TTL串口),用户无须了解任何 RC523 等射频芯片的复杂控制命…

Dell服务器iDrac口默认账号密码和IP

账号:root 密码:calvin IP:192.168.0.120

华为云终端被他人设置密码,如何解除?可以恢复出厂设置,消除密码!

当我们需要对控制中心进行操作时,会弹出“密码验证”对话框,见下图: 面对这样的情况,肯定是有人莫名设置了密码,我们可以恢复出厂设置,消除密码!具体以下步骤: 1、云终端注销&#…

Dell 服务器如何在BIOS 下清除iDRAC 日志

1.开机自检,根据屏幕右上角提示,按F2 进入system setup 2.出现以下界面, 选择 "iDRAC Settings" 3. 选择System Event Log 4. 如图选择YES 5. 保存设置,选择Finish, 退出重启后,日志清除完毕

华为设备:清除配置详解

清除所有配置 即初始化设备,所有的配置都不想要了。可以在用户视图下输入: reset saved-configuration 输入:Y,确认清除输入:reboot;重启系统 第1次提示输入:N 不保存配置;第2次提…

git 记住账号密码和清除账号密码

git 默认不记住账号密码,每次 clone 都要输入账号密码; 记住账号密码: 我们执行下面的命令 git config --global credential.helper store 这个命令其实是在主目录的gitconfig目录下添加了以下内容(~/.gitconfig) …