Shell_环境变量

来源:互联网 发布:mac系统实用软件 编辑:程序博客网 时间:2024/05/16 05:58

相关命令

查看全局环境变量 printenv

系统环境变量始终使用全大写字母来区别普通用户环境变量。

查看本地环境变量 set

显示特定进程的所有环境变量集,其中也包括了全局环境变量。

输出变量的值

echo $HOME

设置环境变量

设置本地环境变量

$ test=testing $ echo $test//testing

如果要为包含空格的字符串赋值,请用引号括起来 :

$ test="hello world"$ echo $test//hello world

变量名称、等号、值之间没有空格 :

$ test = testing//-bash: test: =: unany operator expected

设置全局环境变量

$ echo $testtesting a long string$ export test  //export命令让变量具有全局性$ bash$ echo $testtesting a long string

移除环境变量

$ echo $testtesting$ unset test   //在 unset 命令中引用环境变量时,不要使用美元符号$ echo $test//空值

在操作全局环境变量时,在子进程中使用 unset 移除全局环境变量,则该操作只对子进程有效。全局环境变量在父进程中仍可用 :

$ test=testing$ export test$ bash$ echo $testtesting$ unset test$ echo $test$ exitexit$ echo $testtesting

变量数组

环境变量的数组,能保存多个值。数组中的值既可分别引用,也可以作为整体引用 。

$ mytest=(one two three four five)$ echo $mytestone$ echo ${mytest[2]}three$ echo ${mytest[*]}one two three four five$ unset mytest[2]$ echo ${mytest[*]}one two four five$ unset mytest$ echo ${mytest[*]}$

默认的 shell 环境变量

bash shell Boune 变量

变量 描述 CDPATH 冒号分隔的目录列表,用作 cd 命令的搜索路径 HOME 当前用户的主目录 IFS 用于分隔字段的字符列表,shell 使用它们分隔文本字符串 MAIL 当前用户邮箱的文件名。对于新邮件,bash shell 将检查该文件 MAILPATH 当前用户邮箱的多个文件名,由冒号分隔。对于新邮件,bash shell 将检查该列表中的各个文件 OPTARG getopts 命令处理的最后一个选项参数的值 OPTIND getopts 命令处理的最后一个选项参数的索引值 PATH 冒号分隔的目录列表,shell 将在这些目录中查找命令 PS1 主 shell 命令行界面提示字符串 PS2 次 shell 命令行界面提示字符串

bash shell 环境变量

变量 描述 BASH 执行当前 bash shell 实例的完整路径名称 BASH_ENV 设置后,各 bash 脚本都将在运行之前尝试执行此变量定义的启动文件 BASH_VERSION 当前 bash shell 实例的版本号 BASH_VERSINFO 包含当前 bash shell 实例的主要及次要版本号的变量数组 COLUMNS 包含当前 bash shell 实例所使用的终端的终端宽度 COMP_CWORD 变量 COMP_CWORD 中的索引,它包含当前光标的位置 COMP_LINE 当前命令行 COMP_POINT 当前光标相对于当前命令开始处的位置的索引 COMP_WORDS 包含当前命令行上的各单词的变量数组 COMPREPLY 包含可能由 shell 函数生成的完成代码的变量数组 DIRSTACK 包含目录栈当前内容的变量数组 EUID 当前用户数值形式的有效用户 ID FCEDIT fc 命令使用的默认编辑器 FIGNORE 冒号分隔的后缀列表,执行文件名完成 (filename completion) 时忽略 FUNCNAME 当前正在执行的 shell 函数的名称 GLOBIGNORE 冒号分隔的模式列表,用于定义文件扩展忽略的文件名集合 GROUPS 包含当前用户所在用户组的变量数组 Histchars 最多 3 个字符,用于控制历史扩展 HISTCMD 当前命令的历史记录数量 HISTCONTROL 控制 shell 历史列表中输入的命令 HISTFILE 保存 shell 历史记录的文件的名称 (默认为 .bash history) HISTFILESIZE 历史文件中可保存的最大行数 HISTGNORE 冒号分隔的模式列表,用于定义哪些命令将被历史文件忽略 HISTSIZE 存储在历史文件中的最大命令数量 HOSTFILE 包含当 shell 需要完成主机名时应该读取的文件的名称 HOSTNAME 当前主机的名称 HOSTTYPE 描述运行 bash shell 的机器的字符串 IGNOREEOF shell 在退出之前必须接受的连接 EOF 字符的数量。如果该值不存在,则默认值为 1 INPUTRC Readline 初始化文件的名称 (默认为.inputrc) LANG shell 的地区类别 LC_ALL 覆盖 LANG 变量,定义地区类别 LC_COLLATE 设置对字符串进行排序时所使用的排序顺序 LC_CTYPE 确定在文件名扩展和模式匹配中使用的字符译码 LC_MESSAGES 确定在解释双引号字符串前出现美元符号时使用的地区设置 LC_NUMERIC 确定格式化数字时使用的地址设置 LINENO 当前执行脚本中的行号 LINES 定义终端上可用的行数 MACHTYPE 以 cpu-company-system 格式定义系统类型的字符串 MAILCHECK shell 应该检查新邮件的频率 (以秒为单位,默认为 60 秒) OLDPWD shell 中刚使用过的工作目录 OPTERR 如果设置为 1, 则 bash shell 将显示 getopts 命令生成的错误 OSTYPE 定义运行 shell 的操作系统 PIPESTATUS 包含前台进程中的进程退出状态值列表的变量数组 POSIXLY_CORRECT 如果设置了此变量,则 bash 将以 POSIX 模式启动 PPID bash 父进程的进程 ID (PID) PROMPT_COMMAND 如果设置了该变量,则表示在显示主提示符之前执行的命令 PS3 select 命令使用的提示符 PS4 回显命令行之前显示的提示符 (如果使用了 bash-x 参数) PWD 当前工作目录 RANDOM 返回 0 到 32767 之间的随机数。为此变量分配的值将作为随机数生成程序 的 seed REPLY read 命令的默认变量 SECONDS 自 shell 启用之后的秒数。为该变量分配值会将计时器重设为该值 SHELLOPTS 已启用的 bash shell 选项列表,由冒号分隔 SHLVL 指示 shell 级别,每次开始一个新 bash shell 时,该变量都增加 1。 TIMEFORMAT 指定 shell 如何显示时间值的格式 TMOUT select 和 read 命令应该等待输入的时间 (以秒为单位)。默认值 0 表示无限等待 UID 当前用户数值形式的真实用户 id
0 0