Linux基本知识1
Posted alicegu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本知识1相关的知识,希望对你有一定的参考价值。
[email protected]:~/nmonData# xyz="this is atest"
[email protected]:~/nmonData# ./test.sh
这是在子shell中执行test.sh,所以在父shell中定义的变量没有办法在子shell中执行,也就是test.sh中不能使用父shell中定义的变量zyz;如果想要test.sh脚本可以使用到当前bash中定义的变量,有两种方式
1) 使用另一种不是本地变量的"变量",它被称作"环境变量",我们可以在当前bash中定义环境变量
2) 在当前bash中,仍然使用"本地变量";,但是改变执行test.sh脚本的方式。
环境变量
使用export关键字指明对应的变量为环境变量,方法如下: export varname=value环境变量的作用域:环境变量的生效范围为当前shell进程及其子进程,
也可以先声明为本地变量,然后再导出为环境变量,步骤如下:
zsythink="www.zsythink.net"
export zsythink
1) 命令行中直接执行的shell脚本在执行时会启动一个子shell进程
2) 命令行中直接执行的shell脚本会继承当前shell的环境变量
3)系统自动执行的shell脚本(非命令行中执行)就需要自我定义需要的各种环境变量,或者导入一些已经存在的环境变量。
在原有bash shell环境中执行一个脚本
在当前bash中,除了使用"路径+名称脚本"的方式直接运行脚本以外,还能使用另一种方法运行脚本,就是使用source关键字,我们只要在原有的方法前面加入source关键字即可
[email protected]:~/nmonData# source ./test.sh
本地变量只能在当前shell进程中生效,而当我们在执行脚本的时候如果加入了source关键字,那么脚本就相当于在当前进程中执行,而不是在子进程中执行,那么,如果使用source的方式执行脚本,理论上来说,本地变量是可以被脚本使用的,因为它们都在一个进程中。注意 也可以如下执行
[email protected]:~/nmonData# . /test.sh
". /some/file"用文字描述就是"点 空格 脚本路径",其实 source /some/file 可以理解为将/some/file文件中的内容包含到当前文件或者进程中, "." 的作用和source的作用相同。
以上是关于Linux基本知识1的主要内容,如果未能解决你的问题,请参考以下文章