一天一linux命令(14)env set declare 变量

本文详细介绍了环境变量的使用方法,包括显示、修改、声明等操作,并提供了常见环境变量的解释。此外,还讲解了变量设定的规则,如变量命名、双引号与单引号的使用、export的作用等,帮助开发者更熟练地掌握Linux环境变量的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

env

  说明:用于显示和修改环境变量。

例:显示所有环境变量

  $ env

set

 说明:除显示系统的默认值外,还会显示自定义变量

echo 

 说明:显示指定变量的值。

例:显示PATH环境变量

 $ echo $PATH

declare

 语法:declare [-afirx] 

 说明:声明变量

 参数:

-a  :定义为数组 array 
-f  :定义为函数 function   
-i  :定义为整数 integer  
-r  :定义为只读  
-x  :定义为通过环境输出变量  
范例:  
[test @test test]# declare -i a=3  
[test @test test]# declare -i b=5  
[test @test test]# declare -i c=$a*$b  
[test @test test]# echo $c  
15     <==变成数字了。  

变量设定规则

1. 变量与变量内容以等号“=”连结;
2. 等号两边不能直接接空格符;
3. 变量名称只能是英文字母与数字,其中数字不能是开头字符;
4. 若有空格符,可以使用双引号或单引号将变量内容结合起来,但要特别留意,双引号内的特殊字符可以保留变量特性,单引号内的特殊字符则仅为一般字符;
5. 必要时以跳转字符“\”将特殊符号(如Enter,$,\,空格符,'等)变成一般符号;
6. 在一串指令中,还需要借助其他指令提供的信息,这时可以使用quote“` command`”;
7. 若该变量为扩增变量内容时,则需以双引号及$变量名称(如"$PATH":/home)继续累加内容;
8. 若该变量需要在其他子程序执行,则以export使变量可以动作,如export PATH;
9. 通常大写字符为系统预设变量,自定义变量可以使用小写字符,方便判断(纯粹依照用户兴趣与嗜好);
10. 取消变量的方法为:$ unset <变量名>。

例一

一般变量设定:
[root @test root]# 12name=VBrid <==错误。因为变量开头不能是数字
[root @test root]# name = VBird <==错误。因为等号两边不能直接接空格符
[root @test root]# name=VBird <==正确。echo $name显示VBird 

比较重要的环境变量。

ENV=/root/.bashrc <==用户自定义环境变量的配置文件
HISTSIZE=1000 <==当前的指令记忆数量
HOME=/root  <==登入者的根目录
HOSTNAME=test.linux.org <==这台主机的名字
HOSTTYPE=i386 <==这台主机的硬件等级大致状态(i386,i686..)
INPUTRC=/etc/inputrc <==一些shell加载的数据文件设定处
LANGUAGE=C  <==默认语言的资料
LANG=zh_TW.Big5 <==与LANGUAGE类似,这个则是各个linux版本常用的默认语言变量,由于我的Mandrake使用中文安装,所以默认语言是中文,即zh_TW.Big5。要修改这个变量,可以在/etc/ sysconfig/i18n中修改。下面的LC_xxx均是与默认语言有关的变量,其中比较有趣的是LC_TIME,如果在文字界面下,最好将LC_TIME改成美式日期显示方式,这样就不会有乱码
LC_COLLATE=zh_TW.Big5 
LC_CTYPE=zh_TW.Big5 
LC_MESSAGES=zh_TW.Big5 
LC_MONETARY=zh_TW.Big5 
LC_NUMERIC=zh_TW.Big5 
LC_TIME=en 
LOGNAME=root <==登入者的账号,这里会有一堆user和USERNAME等,是因为如果您以一般身份使用远程登入,再以su换成root时,您的很多设定会不太一样,所以才会有这么多的user数据

MACHTYPE=i586-mandrake-linux-gnu <==主机的硬件配备等级i586为P MMX等级,K7 及PIII之后的就是i686等级
MAIL=/var/spool/mail/root <==您的邮件文件
OSTYPE=linux-gnu <==操作系统的形式(linux-gnu)
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin: /usr/local/sbin 
PS1=[\u@\h \W]\$ <==提示符的样式
PWD=/root  <==当前所在路径
TERM=xterm  <==终端机形式 

USERNAME=root <==和刚才的LOGNAME类似
USER=root  <==用户账号

单双引号

单引号与双引号的最大不同在于双引号仍然可以保留变量的内容,但单引号内仅能是
一般字符,而不会有特殊符号。我们以下面的例子说明:假设您定义了一个变量,
name=VBird,现在想以name变量定义myname显示VBird its me这个内容,要如何定义?
[root @test root]# name=VBird 
[root @test root]# echo $name 
VBird 
[root @test root]# myname="$name its me" 
[root @test root]# echo $myname 
VBird its me 
[root @test root]# myname='$name its me' 
[root @test root]# echo $myname 
$name its me 
export 变量
在引用他人的文件或其他程序时,export相当重要,尤其在需要两三个文件互相引用时,如果忘记设定export,那么不同文件中的相同变量值将需要一再地重复设定。所以,只要在头一个文件使用export,那么后续的文件引用该变量时,将会自动读取该变量内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值