[100 tips about shell] Shell中的变量作用域,全局和局部变量
Posted 如何在5年薪百万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[100 tips about shell] Shell中的变量作用域,全局和局部变量相关的知识,希望对你有一定的参考价值。
本文目的
shell中的变量作用域是什么?是否有全局变量和局部变量?
这个问题很多人可能都会犯错,下面一起看一下真相
结论
- shell中没有变量作用域,一旦声明就全局可用。或者认为所有变量都是全局变量。
- 使用local关键字修饰的变量,可以作为局部变量。
验证
#!/bin/bash
# 脚本上方声明的变量
var1="hello world"
function test1
# 脚本内部声明变量
var2=87
echo "test1 $var2"
echo $var1
echo $var2
test1
echo $var1
echo $var2
~
测试结果
var2 虽然在函数内部声明的,依然能够在函数外部使用。甚至在其他函数内部使用,就像是全局变量一样。
local修饰变量
#!/bin/bash
# 脚本上方声明的变量
var1="hello world"
function test1
# 脚本内部声明变量
local var2=87
echo "test1 $var2"
echo $var1
echo $var2
test1
echo $var1
echo $var2
~
测试结果:
var2 在函数外不可见
结论
shell本身不适合作为企业编程语言,而是一种操作系统工具,本身语法有很多变化。
- 给全局变量大写名字,且定义在脚本上方,不要重复
- shell中变量名字注意避免重复,以防止发生结果不一致,且不容易排查的结果
以上是关于[100 tips about shell] Shell中的变量作用域,全局和局部变量的主要内容,如果未能解决你的问题,请参考以下文章
[100 tips about shell] shell中变量拼接输出字符串单引号双引号
markdown [All About Shell]关于shell的信息#shell #bash #sh