Shell变量作用域

来源:互联网 发布:idc机房网络架构 编辑:程序博客网 时间:2024/06/07 09:35

总结

  • 定义在函数外的变量为全局变量,作用域为定义位置开始到shell结束。
  • 定义在函数内的变量,默认为全部变量,作用域为定义位置开始到shell结束,即函数内对变量的修改,会在函数外被访问到。变量前加local关键字,则变量为局部变量,作用域在函数内,即函数内对变量的修改,不会在函数外被访问到。
  • 定义在函数内的全局变量,当函数在子shell调用时,作用域在子shell内,不会被父shell访问。
  • 子shell内的对父shell变量的修改不会被父shell访问到。

示例

g="g"func1(){g="g1"}func2(){local g="g2"}echo "g:$g"  # output:g:gfunc1echo "g:$g"  # output:g:g1g="g"func2echo "g:$g"  # output:g:gg="g"a=`func2` #子shell调用,echo "g:$g"  # output:g:g
原创粉丝点击