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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。
: M" W7 H; H2 L* O3 l. f) x
1 e# n$ Y/ V7 E3 M- O( n! G(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。- \$ \' i& S; G8 S) A
4 P( N( T" a! u( o6 T
8 ]$ d6 a9 N' G# e
例1:脚本变量的作用域

3 ]% A, y# H7 t. A5 |9 q9 S; g#!/bin/bash
" w8 a' R; U) P. |+ q9 X#define the function ltx_func
' r' O4 X2 J0 t& g' q( Ultx_func()
5 _' d, v+ d5 ~0 b  F{
8 d2 i- J! B7 |" H2 v5 b   echo $v1
( n' R% X& y; k- G   #modify the variable v10 Z5 {. G6 X- _; ^2 H- ]
   v1=200
/ J) B+ V: X. R- [& [# _5 A}
' s* c2 n) J6 m4 Z' o: _#define the variable v1
+ U% k: f( Q7 b6 v  `) x1 y! Bv1=100; l, n% b0 O3 e/ K
#call the function ltx_func1 S( C4 E/ X1 ]4 @$ t) B% i8 y
ltx_func
' b$ N  z# a+ {# lecho $v1; \) P4 w% X! D( J
- c+ V! l: R. R4 ]8 ~

1 P' C6 l% H0 [, c0 v结果:

4 x- h' S9 s& i- A2 m# l
+ @/ W) W+ s! X8 b$ V% W100  T3 j* ?8 j# w: \& ?- |
200

6 h( }# X" A/ p7 D# w' G; U, S+ W0 F/ v
解析:脚本变量v1的作用域从被定义的地方开始,到shell结束。调用函数ltx_func的地方在变量v1的作用域内,所以能够访问并修改变量v1。; A  s; {& y6 @; ?2 f+ P- H
$ O; H; R( i9 B2 y/ T: e
(2)Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。
8 |5 T3 `) ^5 j% d$ i! E$ u& o
1 n* l( q$ i6 _3 |# a  K( V. s/ }: \3 _* [& \5 v- W
例2:函数定义的global变量
3 i- t- b( a5 V0 l- Q) L+ ?
游客,如果您要查看本帖隐藏内容请回复

; D/ J+ ?6 B+ X/ e. J3 {4 P, G0 N1 o

2 R9 |: C# k, V. _; W) q

6 A7 m! R! E4 A5 M
$ z- A) a9 l7 P1 G: {# @0 m" w

$ r5 J: F# ^! i, _  F

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 00:52 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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