|
|
51CTO旗下网站
|
|
移动端

3.2.2 显示与取消环境变量

《跟老男孩学Linux运维:Shell编程实战》本书是一本较完整的Shell编程实战型图书,并非大而全,但处处可以体现实战二字,大多内容取于企业实战,并结合老男孩十几年的运维工作和教学工作进行了梳理。本节为大家介绍显示与取消环境变量。

作者:老男孩来源:机械工业出版社|2017-04-21 10:40

3.2.2 显示与取消环境变量

1.通过echo或printf命令打印环境变量

下面我们先来看看常见的系统环境变量。

$HOME:用户登录时进入的目录。

$UID:当前用户的UID(用户标识),相当于id?-u。

$PWD:当前工作目录的绝对路径名。

$SHELL:当前SHELL。

$USER:当前用户。

......

范例3-3:通过echo和printf命令打印环境变量。

  1. [oldboy@oldboy ~]$ echo $HOME  
  2. /home/oldboy  
  3. [oldboy@oldboy ~]$ echo $UID  
  4. 504  
  5. [oldboy@oldboy ~]$ echo $PWD  
  6. /home/oldboy  
  7. [oldboy@oldboy ~]$ echo $SHELL  
  8. /bin/bash  
  9. [oldboy@oldboy ~]$ echo $USER  
  10. oldboy  
  11. [root@oldboy ~]# printf "$HOME\n"  
  12. #<==printf是一个更复杂的格式化打印内容的工具,一般不需要  
  13. /root 

提示: 在写Shell脚本时可以直接使用系统默认的环境变量,一般情况下是不需要重新定义的,在使用定时任务等执行Shell脚本时建议在脚本中重新定义。

2.用env或set显示默认的环境变量

用env(printenv)显示默认环境变量的示例如下:

  1. [oldboy@oldboy ~]$ env  
  2. HOSTNAME=oldboy 
  3. SHELL=/bin/bash  
  4. HISTSIZE=1000 
  5. LC_ALL=C  
  6. MAIL=/var/spool/mail/oldboy  
  7. PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oldboy/bin  
  8. INPUTRC=/etc/inputrc  
  9. PWD=/home/oldboy  
  10. LANG=zh_cn.gb18030  
  11. SHLVL=1 
  12. HOME=/home/oldboy  
  13. LOGNAME=oldboy 

中间和结尾省略若干代码

用set也可以显示环境变量(包括局部变量),如下:

  1. [root@oldboy ~]# set  
  2. APACHEERR=hello 
  3. BASH=/bin/bash  
  4. BASH_ALIASES=()  
  5. BASH_ARGC=()  
  6. BASH_ARGV=()  
  7. BASH_CMDS=()  
  8. BASH_LINENO=()  
  9. BASH_SOURCE=()  
  10. BASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")  
  11. BASH_VERSION='4.1.2(1)-release' 
  12. COLORS=/etc/DIR_COLORS  
  13. COLUMNS=103 

中间和结尾省略若干代码

在3.2.1节还提到了一个相关的命令declare,大家还记得吗?

3.用unset消除本地变量和环境变量

用unset消除本地变量和环境变量的示例如下:

  1. [oldboy@oldboy ~]$ echo $USER  
  2. oldboy  
  3. [oldboy@oldboy ~]$ unset USER  
  4. [oldboy@oldboy ~]$ echo $USER  
  5.                                 #<==此处为输出的空行 

可以看到变量的内容显示为空。

环境变量的知识小结:

变量名通常要大写。

变量可以在自身的Shell及子Shell中使用。

常用export来定义环境变量。

执行env默认可以显示所有的环境变量名称及对应的值。

输出时用“$变量名”,取消时用“unset变量名”。

书写crond定时任务时要注意,脚本要用到的环境变量最好先在所执行的Shell脚本中重新定义。

如果希望环境变量永久生效,则可以将其放在用户环境变量文件或全局环境变量文件里。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

计算机网络安全

本书从计算机网络安全的概念入手,分析了单机节点、单一网络、互联网络和开放互联网络的基本安全问题,并对计算机网络安全体系架构和安全机...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊