Linux下变量的小结

1.Linux下的变量分为:

           a)环境变量

           b)自定义变量

           c)与bash操作接口有关的变量,例如PS1,$,?等等这样的变量吧

Question:有关环境变量会不会有一个配置文件,记录了系统的所有环境变量呢?

 

2.有关变量的一些操作:

           a)读取变量内容:$变量名 或 ${变量名}

           b)取消变量:unset 变量名

           c)将自定义变量变成环境变量:

                          ——》export 自定义变量名  

                          ——》declare -x 自定义环境变量

                 Question:这个变成了环境变量的变量,会不会在下次开机的时候继续有效呢,会不会系统的环境变量的设置其实是有一个配置文件的,其中会列举了系统的所有环境变量,系统开机的时候会主动去加载这个配置文件?

           d)查看系统的所有环境变量:env 或 export

           e)查看系统的所有变量:set 或 declare

            f)环境变量变成自定义变量:declare +x  环境变量名

 

3.声明或定义一个自定义变量的方式:

           a)直接方式:变量名=变量值

           b)read方式(就是从键盘读取变量值,用于交互比较好):read [-pt] 变量名

           c)declare/typeset方式:declare [-aixr] 变量名

 Remarks:declare在声明或定义一个变量时,可以指定该变量时数组类型还是整型的。如果指定变量为整型的话,则后面可以直接利用变量进行算数操作。例如,declare -i sum=0,则后面可以直接用sum=sum+2这样的表达式。如果你不嫌麻烦的话,仍旧可以使用sum=$(($sum+2))


4.关于自定义变量和环境变量的区别

        一个shell中的自定义变量和环境变量的区别体现在该shell的子shell环境能够继承该变量。如果是自定义变量,子shell不会继承该变量;如果是环境变量,子shell就会继承该变量。

        将一个自定义变量转换成环境变量的方法如下:

export 自定义变量名称


5.关于shell的父子shell关联性说明:

        当你登录linux取得一个shell(如bash)之后,该shell就是一个独立的进程。接下来你在该shell下面执行任何操作都是有这个shell衍生出来的:

        (1)如果该操作是用sh filename.sh或./filename.sh,那么会再取得一个该登录bash的bash子进程,如果脚本中含有命令,那么又是该bash子进程的子进程。

        (2)如果该操作是一个命令,例如find,那么直接在登录取得到的bash下生成一个find的子进程。


你可能感兴趣的:(Linux下变量的小结)