您好,欢迎来到华拓网。
搜索
您的当前位置:首页第7章 SHELL变量

第7章 SHELL变量

来源:华拓网
LinuxSHELL变量

a=1

为什么a要等于1呢?

a能不能等于2呢?当然可以了。甚至于a还可以等于wanglei^_^

这就是变量,一直在变化的量。我们现在来拆分上面的公式,公式左面的a称之为“变量名”;公式右面的1称之为“变量值”。

需要明确的是:变量名是固定的,变量值是变化的。

那么变量值到底如何变化呢?这就涉及到了以下几类变量。【自定义变量】

a=1这就是自定义变量,为什么呢?因为变量值是由我说了算的,我想让变量值是啥,它就得是啥,这就是我自己定义的变量。

【预定义变量】

这类变量的值就不是由我们说了算的,而是系统本身已经定义好的,虽然是预先就定义好的,但是要记住变量的主要特点——永远变化的东西。

比如:USER这个预定义变量,它的值是多少呢?那就要看当前登录系统的用户是谁了。如果user1登录了,那么USER=user1;如果wanglei登录了,那么USER=wangle。看明白了吧,USER这个预定义变量的值就是当前登录系统的用户名。

【本地变量】

最简单的描述就是:这个变量在哪里“出生”就在哪里生效。

我们已登录系统,所使用的SHELL就是bash,那么当我登录系统后自定义一个变量a=1,这个a是在当前SHELL下“出生”的,所以它的变量值也仅仅在当前SHELL下生效,当我们当前的bash切换到csh下时,a就已经失效了。那么我们在当前的bash下输入命令#bash,等同于我们从一个bash切换到了另一个bash,尽管都是bash,但是我们自己要清楚,这已经是第2个bash了,而a的出生地是第1个bash,所以此时的a还是无效的。

【环境变量】

这个变量打破了“本地变量”的,只要在Linux这个大的环境里面,不管SHELL如何变化,其变量的值都是生效的,这里会出现一个命令export——定义一个环境变量。

比如:#exporta=1好了,现在的a就是一个环境变量了,那么你可以任意切换SHELL了,不管你在哪个SHELL下,a的变量值永远是有效的。

强调一点,几乎所有的“预定义变量”都是“环境变量”。

下面讨论一下变量的表现形式。例1:#a=1

#echoa那么显示的就是#echo$a那么显示的就是

#echo‘$a’那么显示的就是#echo“$a”那么显示就是

a1$a1

例2:#b=$a

#echob

那么显示的就是b

#echo$b那么显示的就是1#echo‘$b’那么显示的就是$b#echo“$b”那么显示的就是1

例3:#c=‘$a’

#echo$c那么显示的就是$a#echo‘$c’那么显示的还是$a#echo“$c”那么显示的还是$a

例4:#d=“$a”

#echo$d那么显示的就是1

#echo‘$d’那么显示的就是$d#echo“$d”那么显示的就是1

四个例子之后,看第一遍感觉有点乱-_-那好吧,再看一遍吧^_^需要注意的两点是:

1.引用变量的时候需要添加特殊符号$

2.单引号‘’里面的内容不会被看做是变量,而双引号“”里面的内容会被认为是变量第一次接触变量这个东西得学员会有些困惑,变量到底有啥用处?

在这篇文章中,我们不会体会到变量的作用,很多时候变量都是应用在脚本编程中的。“脚本”!!!这么难的东西哟!其实很简单^_^

先把本篇文章的知识点完全吸收,从下期开始介绍脚本编程的技巧。最后,我们来猜测一下执行下面这些命令的结果:#a=wangle#b=xueshu#c=“/tmp”#groupadd$b#useradd-g$b-d$c$a

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务