码迷,mamicode.com
首页 > 系统相关 > 详细

【Linux】基本知识1

时间:2018-06-26 16:08:47      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:名称   方式   定义   nmon   file   his   导入   exp   roo   

root@agu:~/nmonData# xyz="this is atest"

root@agu:~/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关键字即可

  root@agu:~/nmonData# source ./test.sh

本地变量只能在当前shell进程中生效,而当我们在执行脚本的时候如果加入了source关键字,那么脚本就相当于在当前进程中执行,而不是在子进程中执行,那么,如果使用source的方式执行脚本,理论上来说,本地变量是可以被脚本使用的,因为它们都在一个进程中。注意 也可以如下执行

root@agu:~/nmonData# . /test.sh

". /some/file"用文字描述就是"点 空格 脚本路径",其实 source /some/file 可以理解为将/some/file文件中的内容包含到当前文件或者进程中, "." 的作用和source的作用相同。

 

【Linux】基本知识1

标签:名称   方式   定义   nmon   file   his   导入   exp   roo   

原文地址:https://www.cnblogs.com/alicegu2009/p/9229135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!