云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Linux变量和引用

Linux变量和引用

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 0:32:19

变量和引用

1 变量

1.1 什么是变量

变量用于保存有用信息,如路径名、文件名、数字等,Linux用户使用变量定制其工作环境,使系统获知用户相关的配置。 变量可分为:本地变量、环境变量和位置参数。 (1) 本地变量是仅可以在用户当前Shell生命期的脚本中使用的变量,本地变量随着Shell进程的消亡而无效,本地变量在新启动的Shell中依旧无效,它类似于C、C++、Java等编程语言中局部变量的概念。本地变量中包含环境变量,Linux的本地变量的非环境变量不具备继承性。 (2) 环境变量则适用于所有由登录进程所产生的子进程,简言之,环境变量在用户登录后到注销之前的所有编辑器、脚本、程序和应用中都有效。新的环境变量通过export命令来定义。Linux的环境变量具有继承性,即子Shell会继承父Shell的环境变量。 (3) 位置参数也属于变量,它由于向Shell脚本传递参数,是只读的。

1.2 变量替换和赋值

Shell的三类变量中,位置参数是只读变量,因此,没有变量的替换和赋值操作,其他两类变量都存在上述操作。 变量是某个值的名称,引用变量值就称为变量替换,$ 符号是变量替换符号,如variable是变量名,那么,$variable或${variable}就表示变量的值。 将值赋给某个变量名就称为变量赋值,变量赋值有两种格式,如下所示: variable=able ${ variable=value } 对于变量赋值,有以下三点说明: (1) 等号的两边可以有空格,这不影响操作; (2) 如果值(value)中包含空格,则必须用双引号括起来; (3) 变量名只能包括大小写字母(a~z和A~Z)、数字(0~9)、下滑杠(_)等符号,并且变量名不能以数字开头,否则视为无效变量名。 利用unset命令可以清除变量的值,命令格式为:unset 变量名 除了使用等号进行变量赋值以外,变量赋值还有下面几种模式: 模 式 variable=value variable+value variable?value或variable:?value variable:=value variable:-value

意 义 将值赋给变量variable 对已赋值的variable,重设其值 对未赋值的variable,显示系统错误信息 对未赋值的variable,将值value值赋给它 对未赋值的variable,将值value值赋给它,但value值不存储到variable对应的地址空间 1.3 无类型的Shell脚本

在C、C++、Java等编程语言中,定义变量需要声明其类型,如整形、浮点型、字符型等。Shell脚本变量却是无类型的,这与awk变量是一样的。bash Shell不支持浮点型,只支持整形和字符型,默认情况下,Shell脚本变量是字符型的,同时,字符型的变量还具有一个整型值,为0,尽管如此,bash Shell并不要求在定义一个变量时声明其类型。但是,Shell会根据上下文判端出数值型的变量,并进行变量的算术运算和比较等数值操作。判定标准时变量中是否只包含数字,如果变量只包含数字,则Shell认定该变量是数字型的,反之,Shell认定该变量是字符串。

下面通过一个例子分析Shell对无类型变量的处理方式,新建一个名为integer.sh的脚本,内容如下: #!/bin/bash a=2009 let \echo \ b=xx09 echo \declare -i b echo \ let \echo \ exit 0 integer.sh的脚本首先定义a变量,值为2009,然后将a的值增加1,再输出a的值。从下面的integer.sh脚本执行结果可以看到,Shell自动将a解析为数值变量,a=2010。let命令用于在变量上执行算术运算,实际上let \等价于a=+1。然后integer.sh脚本定义b变量,值为xx09,b显然是字符型的,我们利用declare命令将b强制转化为整形,发现b的值并没有改变,即declare强制转化并没有起作用。将b执行算术操作,增加1,结果为b=1,即字符型变量的数值为0。integer.sh脚本的执行结果如下所示: [root@localhost ~]# . integer.sh a=2010 b=xx09 b=xx09 b=1 接下来,我们通过一个例子说明Shell对空字符串和未定义变量的处理方式,新建null-undeclare.sh脚本,内容如下: #!/bin/bash c=\echo \ let \ echo \ echo \let \echo \ exit 0 null-undeclare.sh脚本定义c变量为空字符串,将c执行算术操作,增加1,结果为c=1,即空字符串变量的数值仍为0。然后null-undeclare.sh脚本直接输出未曾预先定义的变量e,结果e为空值,将e加1,结果为e=1。null-undeclare.sh脚本的执行结果如下所示: [root@localhost ~]$ . null-undeclar.sh c= c=1 e= e=1 从以上两个脚本不然总结出:Shell脚本变量是无类型的,并且Shell变量同时有数值型和字符型两种赋值,数值型的初值为0,字符型的初值为空,而且可以不预先定义变量而直接使用它。

1.4 环境变量

1.4.1 定义和清除环境变量

环境变量的替换和赋值依然遵循前面变量所述的一般规律,环境变量也是无类型的,环境变量的特殊之处仅在于它的值适用于所有由登录进程所产生的子进程。定义环境变量的格式是:

#定义环境变量的基本格式 ENVIRON-VARIABLE = value export ENVIRON-VARIABLE #环境变量赋值 #声明环境变量 在给环境变量赋值后,用export命令声明一下,就说明此变量为环境变量,环境变量的名称一般由大写字母组成。 如果要列出系统中所有的环境变量,可使用env命令或printenv命令。 清除环境变量值的方法与清除其他变量的方法一样,都是用unset命令。

1.4.2 查看环境变量

(1) 使用echo命令查看单个环境变量。 例如:echo $PATH

(2) 使用env或printenv命令查看所有环境变量。 例如:env

(3) 使用set或declare查看所有本地定义的环境变量。 例如:set declare

1.4.3 环境变量文件

在shell的命令行下直接定义的变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。 如果只是临时用一下,可以直接在shell下用export命令设定环境变量;如果希望此环境变量每次开机或打开Shell时自动设定而无须每次都手动设定,那么需要将export命令写入环境变量配置文件中。Linux下,环境变量被分别保存在多个环境变量文件中,当你进入系统的时候,这些环境变量文件是按照下面的顺序读取的: (1) /etc/environment文件 设置整个系统的环境信息,在系统启动时被读取,与登录用户无关。 (2) /etc/profile文件 为系统的每个用户设置环境信息,任何用户每次登录时执行该文件。 (3)/etc/bashrc文件 是针对所有用户的bash Shell初始化文件,任何用户每次登录或打开新的Shell时执行该文件。在执行完/etc/profile 内容之后,如果用户的Shell运行的是bash shell,那么接着就会执行此文件。 (4) ~/.bashrc文件 该文件包含专用于你的bash shell的bash信息,在用户每次登录时或打开新的Shell时执行该文件。 (5) ~/.bash_profile文件 每个用户都可使用该文件保存专用于自己使用的shell信息,在用户每次登录时执行该文件。 注意:在不同Linux中,这个文件的名字不同,可能的名字有~/.bash_profile、~/.bash_login、~/.profile其中的一种或者几种。如果都存在的话,执行的顺序为~/.bash_profile、~/.bash_login、~/.profile。 (6) ~/.bash_logout文件 在用户每次退出登录的时候执行该文件。 /etc/environment文件、/etc/profile文件、/etc/bashrc文件是针对所有用户的。 ~/.bashrc文件、~/.bash_profile文件、~/bash_logout文件在每个用户的主目录(HOME目录)下都存在,是针对特定用户的(哪个用户的主目录就针对哪个用户)。 例如,编辑/etc/profile文件,添加CLASSPATH变量: # vi /etc/profile 添加内容如下: export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行# source /etc/profile,不然只能在下次重进此用户时生效。

搜索更多关于: Linux变量和引用 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

变量和引用 1 变量 1.1 什么是变量 变量用于保存有用信息,如路径名、文件名、数字等,Linux用户使用变量定制其工作环境,使系统获知用户相关的配置。 变量可分为:本地变量、环境变量和位置参数。 (1) 本地变量是仅可以在用户当前Shell生命期的脚本中使用的变量,本地变量随着Shell进程的消亡而无效,本地变量在新启动的Shell中依旧无效,它类似于C、C++、Java等编程语言中局部变量的概念。本地变量中包含环境变量,Linux的本地变量的非环境变量不具备继承性。 (2) 环境变量则适用于所有由登录进程所产生的子进程,简言之,环境变量在用户登录后到注销之前的所有编辑器、脚本、程序和应用中都有效。新的环境变量通过export命令来定义。Linux的环境变量具有继承性,即子Shell会继承父Shell的环境变量。 (3) 位置

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com