0995-玩转变量跟环境变量
0995-玩转变量和环境变量
1、介绍
在bash中,一个变量的值都是字符串。无论你给变量赋值时有没有加引号,都会以字符串的形式存储。
有一些特殊变量会被shell环境和操作系统环境和操作系统用来存储一些特别的值。这类变量叫环境变量。
*可以使用env命令查看所有与终端相关的环境变量。*
2、假如有一个叫gedit的应用程序在远行,我们可以使用pgrep命令获得gedit的进程ID:
pgrep gedit
12501
那么我们可以通过下面的命令获得与该进程有关的环境变量
cat /proc/12501/environ
GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux
查看是如果想一行一个变量:
cat /proc/12501/environ | tr '\0' '\n'
3、变量赋值
如果value不包括任何空白字符(如空格),那么它就不需要使用引号进行引用 ,否则必须使用单引号或双引号。
注意:var = value不同于var=value。把var=value写成var = value是常见的错误,
但前者是赋值操作,后者是相等操作。
在变量名之前加上$前缀就可以打印出变量的内容
var="value"
echo $var
或
echo ${var}
4、我们可以在printf或echo命令的双引号中引用变量值。
fruit=apple
count=5
echo "we have $count ${fruit}(s)"
环境变量是未在当前进程中定义,而从父进程中继承而来的变量。
export命令用来设置环境变量。
如果要在PATH中添加一条新路径,可以使用:
export PATH="$PATH:/home/user/bin"
5、获得字符串长库
length=${#var}
6、识别当前所使用的shell
echo $SHELL
7、检查是否为超级用户
UID是一个重要的环境变量。
root用户的UID是0
1、介绍
在bash中,一个变量的值都是字符串。无论你给变量赋值时有没有加引号,都会以字符串的形式存储。
有一些特殊变量会被shell环境和操作系统环境和操作系统用来存储一些特别的值。这类变量叫环境变量。
*可以使用env命令查看所有与终端相关的环境变量。*
2、假如有一个叫gedit的应用程序在远行,我们可以使用pgrep命令获得gedit的进程ID:
pgrep gedit
12501
那么我们可以通过下面的命令获得与该进程有关的环境变量
cat /proc/12501/environ
GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux
查看是如果想一行一个变量:
cat /proc/12501/environ | tr '\0' '\n'
3、变量赋值
如果value不包括任何空白字符(如空格),那么它就不需要使用引号进行引用 ,否则必须使用单引号或双引号。
注意:var = value不同于var=value。把var=value写成var = value是常见的错误,
但前者是赋值操作,后者是相等操作。
在变量名之前加上$前缀就可以打印出变量的内容
var="value"
echo $var
或
echo ${var}
4、我们可以在printf或echo命令的双引号中引用变量值。
fruit=apple
count=5
echo "we have $count ${fruit}(s)"
环境变量是未在当前进程中定义,而从父进程中继承而来的变量。
export命令用来设置环境变量。
如果要在PATH中添加一条新路径,可以使用:
export PATH="$PATH:/home/user/bin"
5、获得字符串长库
length=${#var}
6、识别当前所使用的shell
echo $SHELL
7、检查是否为超级用户
UID是一个重要的环境变量。
root用户的UID是0