[100 tips about shell] Shell中的变量作用域,全局和局部变量

Posted 如何在5年薪百万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[100 tips about shell] Shell中的变量作用域,全局和局部变量相关的知识,希望对你有一定的参考价值。

本文目的

shell中的变量作用域是什么?是否有全局变量和局部变量?
这个问题很多人可能都会犯错,下面一起看一下真相

结论

  1. shell中没有变量作用域,一旦声明就全局可用。或者认为所有变量都是全局变量。
  2. 使用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本身不适合作为企业编程语言,而是一种操作系统工具,本身语法有很多变化。

  1. 给全局变量大写名字,且定义在脚本上方,不要重复
  2. shell中变量名字注意避免重复,以防止发生结果不一致,且不容易排查的结果

以上是关于[100 tips about shell] Shell中的变量作用域,全局和局部变量的主要内容,如果未能解决你的问题,请参考以下文章

[100 tips about shell] shell中变量拼接输出字符串单引号双引号

markdown [All About Shell]关于shell的信息#shell #bash #sh

shell tips

Tips about Troubleshooting RAC

Some tips about python

Some tips about argument in python