本博客内容来自《Linux命令行与shell脚本编程大全》第六章
目录
1、环境变量
环境变量是bash shell用来存储有关shell会话与工作环境信息的特性。分为全局变量和局部变量。
查看全局环境变量
全局环境变量对shell会话以及所有子shell都是可见的,局部变量只对创建它的shell可见。
Linux系统在启动bash会话时会默认设置系统环境变量,可以通过env或printenv命令查看
[root@izwz9194nuv8g0cwqfqsh3z ~]# env
XDG_SESSION_ID=515
HOSTNAME=izwz9194nuv8g0cwqfqsh3z
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=183.157.160.24 24993 22
SSH_TTY=/dev/pts/0
USER=root
......
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=......
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env查看单个环境变量的值,使用printenv命令,如下所示(env命令无此功能)
[root@izwz9194nuv8g0cwqfqsh3z ~]# printenv HOME
/root也可以用echo命令显示变量
[root@izwz9194nuv8g0cwqfqsh3z ~]# echo $HOME
/root
查看局部环境变量
很遗憾,Linux现在没有只显示局部环境变量的命令。set命令可以查看为某个进程设置的所有环境变量,包括局部变量、全局变量和用户定义变量,并对输出结果按照字母顺序排列。
[root@izwz9194nuv8g0cwqfqsh3z ~]# set
BASH=/bin/bash
......
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(1)-release'
COLUMNS=187
DIRSTACK=()
EUID=0
2、设置用户定义变量
设置局部用户定义变量
[root@izwz9194nuv8g0cwqfqsh3z ~]# my_var=hello
[root@izwz9194nuv8g0cwqfqsh3z ~]# echo $my_var
hello
[root@izwz9194nuv8g0cwqfqsh3z ~]# str_var="hello world"
[root@izwz9194nuv8g0cwqfqsh3z ~]# echo $str_var
hello world自定义变量请小写
等号定义用户变量
如果变量值中有空格,加引号
用户自定义的变量无法在新的进程或子shell中使用。
设置全局环境变量
设置全局环境变量的方法是先设置用户自定义变量,再使用export命令导出为全局变量。
[root@izwz9194nuv8g0cwqfqsh3z ~]# str_var="hello wo