linux下的export和source命令
1、export
命令
参考
语法:export [-fnp] [变量名称]=[变量设置值]
- 在shell中执行程序时,export用于新增、修改或删除环境变量。
- 一般在shell中运行脚本程序时,系统会创建一个shell(子shell),source除外(下面有解释),在子shell中定义的变量只在子shell中有效。(类比局部变量只在子程序(函数)中有效,在主程序中不可调用),子shell可以用父shell中的环境变量。
- 设置环境变量。
echo $变量名
(如echo $PATH
)可以查看环境变量。若执行的程序在环境变量PATH中,直接输入程序名就可以,如果不在,则找不到该命令,需要完整路径表示命令位置。此时,可以添加该目录到环境变量。PATH=$PATH:路径
,若想永久有效,添加到~/.bashrc
中:(形如)export PATH="$PATH:/opt/.../.../bin
- 只有环境变量(export的)才会传递到子shell中,对本shell和子shell有效(父shell无效);一般变量对子shell也是无效的,只在本shell有效。
2、source
命令
1、source
命令
source ~/.../../file
source命令作用:现在立刻马上在当前shell中按顺序执行file中的脚本。通常用于重新执行刚修改完的初始化文档。
如在linux中修改了./bashrc
启动初始化文件,这时可以用source
命令重新执行,使得修改生效而不用注销再次登录。
与./直接执行脚本不同,./是在子shell运行的,结果并没有反映到父shell中。source是直接在本shell中运行的,不会启动一个新的shell,所以脚本中设置的变量直接成为当前shell的一部分。
2、source file
和 sh file
和 ./file
的区别
sh file
和./file
一样,重新建立新的shell执行脚本,子shell继承父shell的环境变量(export了才是),但是子shell新建的改变的变量不会影响父shell
source file
,读取file中的脚本依次在当前shell中执行,没有建立新的子shell
3、实验加深理解
三个bash脚本文件noexport.sh
, export.sh
, test.sh
#noexport.sh
var="test export and source"
#export.sh
var="test export and source"
export var
#test.sh
echo $var
实验1
wfq@wfq:~$ source noexport.sh #本shell中执行noexport.sh
wfq@wfq:~$ echo $var
test export and source
wfq@wfq:~$ source test.sh
test export and source
wfq@wfq:~$ sh test.sh #子shell中执行,无结果wfq@wfq:~$ #解释:在本shell执行noexport.sh,没有export为环境变量,所以仅在本shell中变量有效,子shell中无效
实验2
wfq@wfq:~$ sh export.sh #在子shell执行export.sh
wfq@wfq:~$ source test.sh #在本shell执行test.shwfq@wfq:~$ #结论解释:在子shell中的变量,尽管是export为环境变量了,在父shell仍然无效
实验3
wfq@wfq:~$ source export.sh #在本shell执行,且export为环境变量了
wfq@wfq:~$ source test.sh #在本shell中,环境变量肯定有效,一般变量也会有效
test export and source
wfq@wfq:~$ sh test.sh #在子shell中,环境变量仍然有效
test export and source
wfq@wfq:~$ #结论解释:export的环境变量,在本shell和子shell均有效
linux下的export和source命令相关推荐
- 【Linux】5.linux下的export命令和环境变量
linux下的export命令和环境变量 linux中在 profile 或者 bashrc 或者其他类似的文件中设置环境变量时(比如PATH),如果没有export,那么只能在直接启动的shell中 ...
- linux 更新软件命令 失败,对linux下软件(库)的更新命令详解
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...
- linux中mysql导入文件,linux下mysql导入sql文件命令
Linux下我们提供导入sql文件可以得到数据.下面由学习啦小编为大家整理了linux下mysql导入sql文件命令的相关知识,希望对大家有帮助! linux的mysql导入sql文件命令详解 lin ...
- 《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式
本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- Linux下常见的文本处理命令
众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑.存储.故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如.今天,就写下几个关于Li ...
- (转载)linux下的find文件查找命令与grep文件内容查找命令
linux下的find文件查找命令与grep文件内容查找命令 转载于和感谢:linux下的find文件查找命令与grep文件内容查找命令 目录 1.前言 1.1 find命令和grep命令的区别 2. ...
- linux下挂载和卸载的命令的用法:mount 、umount
linux下挂载和卸载的命令的用法:mount .umount 将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下, 命令是:mount /dev/had1 /wins ...
- linux为什么用tar压缩,linux下tar压缩和解压命令用法详解
linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...
- linux如何在a休息时运行b,Linux下如何优雅地修正命令?
原标题:Linux下如何优雅地修正命令? 来源:公众号[编程珠玑] 作者:守望先生 ID:shouwangxiansheng 如何快速纠正你的linux命令?我们在输入命令的时候,难免会出现输入命令错 ...
最新文章
- 知识图谱升温之势已现,不要错失下一个AI风口
- 搭建网站必不可少的知识3
- golang 判断字符串是不是数字
- 【CodeForces - 580D】Kefa and Dishes (状压dp)
- plsq卸载 删除注册表、_win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结...
- xlwings 合并单元格 读取_xlwings,让excel飞起来
- pytorch单机多卡的正确打开方式 以及可能会遇到的问题和相应的解决方法
- linux: 批量修改文件夹及文件夹下文件的名字
- C++的继承知识点重温
- [源码和文档分享]基于C++的一元多项式的计算
- Windows10中“SQL Server 配置管理器”哪去了?
- 区块链学习路线图 初阶+中阶+高阶
- .Net中常用的几种ActionResult
- DSP2812 RAM不够用的解决方法【转载】
- C++继承详解(三):抽象类和纯虚函数、多重继承与虚基类的底层实现原理详解
- 某医院门诊预约系统/医院预约挂号系统
- iphone计算机设置,苹果手机怎么设置其他铃声
- SpringBoot系列之(三):启动过程
- 关于调用第三方sdk
- 新华社 | 郭为:IT构架创新助力中国金融科技创新之路