文档章节

linux source,export命令

timer_xi
 timer_xi
发布于 2014/08/18 17:08
字数 933
阅读 128
收藏 0

linux source,export命令


source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化 文档,如 .bash_profile和 .profile 等等。例如,假如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。
比如您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK ,发现没有值,假如您用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是 source不同他就是在本shell中执行的,所以能够看到结果.
source命令的一个妙用
在编译核心时,常常要反复输入一长串命令,如
make mrproper
make menuconfig
make dep
make clean
make bzImage
…….
这些命令既长,又繁琐。而且有时候容易输错,浪费你的时间和精力。如果把这些命令做成一个文件,让它自动按顺序执行,对于需要多次反复编译核心的用 户来说,会很方便。用source命令可以办到这一点。它的作用就是把一个文件的内容当成是shell来执行。先在/usr/src/linux- 2.4.20目录下建立一个文件,取名为make_command:
在其中输入如下内容:
make mrproper && make menuconfig &&
make dep && make clean && make bzImage &&
make modules && make modules_install &&
cp arch/i386/boot/bzImge /boot/vmlinuz_new &&
cp System.map /boot && vi /etc/lilo.conf &&
lilo -v
文件建立好之后,以后每次编译核心,只需要在/usr/src/linux-2.4.20下输入
source make_command
就行了。这个文件也完全可以做成脚本,只需稍加改动即可。这里主要是让大家理解source的用法。如果你用的不是lilo来引导系统,可以把最后 两句话去掉。配置你自己的引导程序来引导新内核。
shell编程中的命令有时和C语言是一样的。&&表示与,||表示或。把两个命令用&&联接起来,如 make mrproper && make menuconfig ,表示要第一个命令执行成功才能执行第二个命令。对执行顺序有要求的命令能保证一旦有错误发生,下面的命令不会盲目地继续执行。
小测试
1 建立test.sh
  #!/bin/bash
  export s=/home/jboss/
2
  执行命令: source test.sh
            echo $s
  结果输出: /home/jboss/
3  新开个shell
   执行命令:  ./test.sh
              echo $s
   结果:  没有输出s值
结论:
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出。
2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);
3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。3、不用 export定义的变量只对该shell有效,对子shell也是无效的。
直接执行一个脚本文件是在一个子shell中运行的,而source则是在当前shell环境中运行的。
source可以让脚本影响它们的父shell环境,这和export去影响子shell环境相反.

© 著作权归作者所有

timer_xi
粉丝 2
博文 53
码字总数 64113
作品 0
深圳
程序员
私信 提问
linux下安装配置JDK、Tomcat、Eclipse、MySQL

以下的安装配置环境是Ubuntu11.04 安装JDK 官方下载最新安装文件 jdk-6u25-linux-i586.bin 改变文件权限,因为下载下来的bin文件是没有执行权限的 终端输入命令:.$ sudo chmod u+x jdk-6u2...

骆乐乐
2011/06/15
1K
0
如何在Linux或Ubuntu18下安装virtualenv

1.输入命令: linux@ubuntu:~$ sudo apt-get install python-virtualenv 2.virtualenv加所想建的项目名字,建立虚拟环境 linux@ubuntu:~$ virtualenv python2 3. 新建一个以python3的虚拟环境:......

阿啦卜
2018/07/17
0
0
hadoop1.1.2伪分布安装指南

1.伪分布式的安装 1.1 修改ip (1)打开VMWare或者VirtualBox的虚拟网卡 (2)在VMWare或者VirtualBox设置网络连接方式为host-only (3)在linux中,修改ip。有上角的图标,右键,选择Edit Connec...

片刻
2014/05/22
153
0
1.hadoop的伪分布安装(CentOS)

1.hadoop的伪分布安装 1.1 设置ip地址 执行命令 service network restart 验证: ifconfig 1.2 关闭防火墙 执行命令 service iptables stop 验证: service iptables status 1.3 关闭防火墙的自...

段英杰
2014/03/04
206
0
ubuntu18.04下配置golang环境

直接从源里安装: sudo apt install golang 或者使用下面的方式,节选自: https://blog.csdn.net/qq_30383511/article/details/80354943 下载安装包 https://golang.org/dl/ 用户根目录创建一个...

漫步海边小路
2018/07/09
313
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
13
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部