shell的作用域?(shell 进阶)

简介: shell的作用域?(shell 进阶)

0027931b0b6441a8a14c2b4ce8940c42.png

一、函数自动全局和局部修饰local


函数中的变量是全局变量,可被修改

to_delete]# a=3
to_delete]# function f() { echo $a;a=33;  }
[root@to_delete]# f
3
[root@to_delete]# echo $a
33

使用local修饰的是局部变量,在shell结束后无法访问

二、bash的变量属于动态作用域


#!/bin/bash
# 全局变量x
x=1
function f() { 
        echo "f: $x";
        x=2;
}
function g() { 
        local x=3;
        f;
        echo "g: $x";
}
g
echo $x

记住bash是在哪里调用,变量就属于哪个作用域?

运行结果:

shellTest]# sh  variableTest.sh 
f: 3
g: 2
1

27ea081b585842eeb8ff17ef16f39be3.png

目录
相关文章
|
Unix Shell Linux
shell变量的作用域
shell变量的作用域。
292 0
|
Shell Linux
Linux Shell 进阶:探索高级命令和脚本编程技巧
Linux Shell不仅仅是一个命令解释器,它还提供了许多强大的高级命令和脚本编程技巧,能够帮助用户更高效地管理系统和处理数据。在这篇文章中,我们将深入探讨Linux Shell的高级功能。
586 0
|
Shell Linux
shell脚本学习-进阶
shell脚本学习-进阶
160 0
|
Shell 程序员
shell中的信号捕获trap(shell 进阶)
shell中的信号捕获trap(shell 进阶)
361 0
shell中的信号捕获trap(shell 进阶)
|
运维 监控 应用服务中间件
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
1468 0
|
运维 Shell Linux
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(一)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)
1279 0
|
Shell
如何写一个类似于ls的命令?(shell进阶)
如何写一个类似于ls的命令?(shell进阶)
261 0
|
Shell Linux 索引
Linux flock 原理(shell进阶)
flock申请的锁对象是处于 内核空间层的全局级别的open file table中的。
562 0
|
弹性计算 Shell Linux
终端、进程组、会话、shell 和脱离终端(shell进阶)
内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。
306 0
|
Shell 调度
什么情况下会开启子shell(shell 进阶)
什么情况下会开启子shell(shell 进阶)
252 0