找回密码
 注册
关于网站域名变更的通知
查看: 257|回复: 1
打印 上一主题 下一主题

shell脚本中的局部变量都有哪些?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-10-9 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。
3 Q9 _) w) T, v0 o
( _$ g! n  @/ x+ X(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。5 y+ W! K# b4 C
9 K+ k0 e0 y2 v* H

, v! a* ]0 l9 r* V* T) f6 j, s# m例1:脚本变量的作用域
9 m% n4 x; C7 P, ]0 ^; }  W! f
#!/bin/bash
1 ?& U; E8 N2 v. p#define the function ltx_func
4 S& f5 I5 }* b/ Zltx_func()- n9 q- J' C* ?
{
% V) N& m8 l5 }( f7 E   echo $v1
- J! J, }" I5 U8 L9 i0 q9 v) W   #modify the variable v1' A( w8 O: u. o5 }( E
   v1=200
9 N5 z% o( ?- P  Y0 M4 U% x}, {$ ~: @+ l" u- a8 x
#define the variable v1
% [: t8 ~2 ^: ]- U# zv1=100
, X; N' E4 l# Z* f5 A: |#call the function ltx_func
/ L; X5 @2 w2 i2 l! Kltx_func
0 y  P5 {* a0 zecho $v1: ^+ G! i  @2 a' s" T  k& Y
, o2 x9 U! s- t
9 J, e$ v' t( D& \* U  d) O
结果:
$ g4 X, n1 f( t3 v4 }$ ]
! h; F( Z9 }  R. @$ d
100
7 e4 u* M( ~  U+ x0 m200
6 H4 S7 ?/ A3 J2 {0 \' G) w1 z! @

$ E! |& j5 J, y, C& [8 ?; G# e解析:脚本变量v1的作用域从被定义的地方开始,到shell结束。调用函数ltx_func的地方在变量v1的作用域内,所以能够访问并修改变量v1。8 n2 F5 R0 L1 X6 N! ]3 r, s  W

. y( |7 @0 e& r6 S(2)Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。
2 e& t# ^" Y# t; j  h$ b4 i' M: u

! G  M6 w2 V4 F3 E6 N例2:函数定义的global变量

  g# X8 \& t" s' q
游客,如果您要查看本帖隐藏内容请回复
6 q% h. K/ _5 k1 z+ t
7 J) y+ s' `! ]+ T0 ?

  i5 ]  h8 o" n+ t& Z3 t: X0 _; `4 Q1 H
+ T% ^/ v+ m0 X$ }) {

' N( M1 C) C* l- @; C

$ y- V! l2 n2 {' F% t/ [) ~

该用户从未签到

2#
发表于 2019-10-9 18:46 | 只看该作者
看看shell脚本中的局部变量都有哪些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 08:38 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表