所有的编程语言都利用变量来存放数据,以备随后使用或修改。和编译型语言不同,大多数脚本语言不要求在创建变量之前声明其类型。用到什么类型就是什么类型。在变量名前面加上一个美元符号就可以访问到变量的值。shell定义了一些变量,用于保存用到的配置信息,比如可用的打印机、搜索路径等。这些变量叫作环境变量。
Shell 使用变量与环境变量 预备知识
变量名由一系列字母、数字和下划线组成,其中不包含空白字符。常用的惯例是在脚本中使用大写字母命名环境变量,使用驼峰命名法或小写字母命名其他变量。
所有的应用程序和脚本都可以访问环境变量。可以使用env
或printenv
命令查看当前shell中所定义的全部环境变量:
$> env
PWD=/home/clif/ShellCookBook
HOME=/home/clif
SHELL=/bin/bash
# …… 其他行
要查看其他进程的环境变量,可以使用如下命令:
cat /proc/$PID/environ
其中,PID
是相关进程的进程ID(PID
是一个整数)。
假设有一个叫作gedit的应用程序正在运行。我们可以使用pgrep
命令获得gedit的进程ID:
$ pgrep gedit
12501
那么,你就可以执行以下命令来查看与该进程相关的环境变量:
$ cat /proc/12501/environ
GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux
注意,实际输出的环境变量远不止这些,只是考虑到页面篇幅的限制,这里删除了不少内容。
特殊文件/proc/PID/environ是一个包含环境变量以及对应变量值的列表。每一个变量以name=value
的形式来描述,彼此之间由null字符(