环境变量
in SHELL脚本攻略笔记 with 0 comment
环境变量
in SHELL脚本攻略笔记 with 0 comment

查看当前环境变量:

echo $PATH

标题文字

添加环境变量:

PATH="$PATH:~/bin"
或者
export PATH=/opt/myapp/bin:$PATH

可以将~/bin添加到当前环境变量中


标题文字

获取指定进程的环境变量:
如果当前有个nginx进程正在运行,而我们想要知道其环境变量,可以这样做
使用以下命令获取进程ID

pgrep nginx

然后使用以下命令获取环境变量即可

cat /proc/PID/environ
[root@localhost ~]# pgrep nginx
1450
1453
1454
[root@localhost ~]# cat /proc/1450/environ 
ocess /usr/sbin/nginx[root@localhost ~]

直接输出的环境变量是一连串的,不好看,可以使用

cat /proc/PID/environ | tr '\0' '\n'

将空格替换为回车后查看,格式就美观多了

[root@localhost ~]# cat /proc/1571/environ
USER=rootLOGNAME=rootHOME=/rootPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binMAIL=/var/mail/rootSHELL=/bin/bashSSH_CLIENT=192.168.34.1 50191 22SSH_CONNECTION=192.168.34.1 50191 192.168.34.132 22SSH_TTY=/dev/pts/0TERM=xtermSELINUX_ROLE_REQUESTED=SELINUX_LEVEL_REQUESTED=SELINUX_USE_CURRENT_RANGE=XDG_SESSION_ID=2XDG_RUNTIME_DIR=/run/user/0
[root@localhost ~]# cat /proc/1571/environ | tr '\0' '\n'
USER=root
LOGNAME=root
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
MAIL=/var/mail/root
SHELL=/bin/bash
SSH_CLIENT=192.168.34.1 50191 22
SSH_CONNECTION=192.168.34.1 50191 192.168.34.132 22
SSH_TTY=/dev/pts/0
TERM=xterm
SELINUX_ROLE_REQUESTED=
SELINUX_LEVEL_REQUESTED=
SELINUX_USE_CURRENT_RANGE=
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/0

获取字符串长度:

var=12345678990
echo ${#var}
10

可以看到长度是10,关键在于#符号

识别当前shell的两个命令:

echo $SHELL
echo $0

识别当前用户UID:

echo $UID

一个简单检测是否为root用户的脚本:

If [ $UID -ne 0 ]; then
echo Non root user. Please run as root.
else
echo Root user
fi

常见的环境变量: $HOME $PWD $USER $UID $SHELL

The article has been posted for too long and comments have been automatically closed.