`
yinlongfei
  • 浏览: 155441 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于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环境相反


声明:转载--本文来自CSDN博客:
http://blog.csdn.net/oopDesigner/archive/2010/03/12/5375573.aspx
分享到:
评论

相关推荐

    linux的source命令找不到解决方法.docx

    Linux 的 source 命令找不到解决方法 Linux 的 source 命令是一种常用的命令,用于读取并执行指定文件中的命令,但是有时候在使用 source 命令时,可能会出现找不到命令的情况。今天我们将为大家介绍 Linux 的 ...

    linux的source命令找不到解决方法.pdf

    Linux 的 source 命令找不到解决方法 Linux 系统中,source 命令是一个非常常用的命令,用于读取和执行指定文件中的命令。然而,有时候我们可能会遇到 source 命令找不到的情况,今天我们就来讨论这个问题。 问题...

    linux系统不支持常用命令的解决方法

    例如,在上面的解决方法中,我们使用 `export` 命令来设置环境变量,然后使用 `source` 命令来使环境变量生效: `source /etc/profile.d/java.sh` 这样可以使得环境变量生效,系统可以正确地找到命令。 结论 ...

    shell 与 export命令

    #### 五、关于Export命令的常见误解 在学习`export`命令的过程中,可能会遇到一些常见的误解,比如认为`export`仅仅是将自定义变量变成系统环境变量。实际上,`export`更准确的功能是将变量的值输出到子shell环境中...

    解决linux 所有命令无法使用的问题

    本文将深入探讨这个问题的原因及解决方案。 通常,Linux系统中的命令是通过`$PATH`环境变量来查找的。`$PATH`定义了一组目录,系统会在这些目录下搜索可执行文件(即命令)。当尝试运行一个命令时,shell会按照`$...

    Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库

    Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库,监控进程占用的CPU、内存、磁盘IO、网络IO)所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一...

    linux ps命令源码

    在Linux操作系统中,`ps`命令是一个非常基础且重要的工具,用于查看系统当前进程的状态。它的功能强大,能够提供各种不同的输出格式,帮助系统管理员监控和管理系统的运行情况。源码分析可以帮助我们深入理解`ps`...

    Source code of Linux

    Detailed analysis of the source code of system Linux helping you to understand how this system was constructed.

    linux下source命令使用详解

    ### Linux下的source命令详解 #### 一、概述 在Linux环境下,`source`命令是一个非常实用的工具,尤其是在处理shell脚本和环境配置文件时。本文将深入探讨`source`命令的功能、用法以及与其他执行脚本方式的区别,...

    SourceInsight for linux

    尽管SourceInsight最初是为Windows平台设计的,但通过在Linux系统上运行Wine软件,用户也能在Linux环境下使用SourceInsight。 Wine(Wine Is Not an Emulator)是一个开源项目,其目标是使Windows应用程序能够在...

    source insight linux安装版本

    在Linux环境下安装Source Insight,需要一些额外的步骤,因为官方主要面向Windows平台。本文将详细介绍如何在Linux系统中安装和使用Source Insight。 首先,你需要获取Source Insight的Linux版本。在这个案例中,...

    source insight Linux风格

    "Source Insight Linux风格"指的是将Source Insight这款强大的源代码阅读和编辑器设置成与Linux终端类似的界面和操作体验。Source Insight是一款广泛使用的编程工具,它提供了对多种编程语言的语法高亮、代码跳转、...

    linux Ubuntu下安装 Source insight

    "Linux Ubuntu下安装Source Insight" Linux Ubuntu下安装Source Insight是指在Ubuntu操作系统下安装Source Insight软件,从而实现在Linux平台下使用Source Insight编辑和阅读源码。本文将详细介绍如何在Ubuntu下...

    Linux下启动数据库服务命令

    在Linux操作系统中,管理和...以上是关于Linux环境下启动数据库服务、WebLogic服务器及Oracle数据库的管理操作,包括启动、停止、备份、恢复和权限管理等基本操作。熟悉这些命令和流程对于日常维护和故障排查至关重要。

    最全Linux常用命令大全-linux常用命令全集

    "最全Linux常用命令大全-linux常用命令全集" 本文档对 Linux 中最常用的命令进行了详细的总结和说明,涵盖了文件和目录管理、磁盘空间管理等方面的命令。 文件和目录管理命令 1. `pwd` 命令:显示当前目录 `pwd`...

    用Source Insight打开linux内核源代码

    用 Source Insight 打开 Linux 内核源代码 Title: 用 Source Insight 打开 Linux 内核源代码 Description: 用 Source Insight 打开 Linux 内核源代码 Tag: source insight linux 知识点: 1. Linux 内核源代码的...

    sourceInsight3.5 及中文乱码解决

    **源代码查看神器Source Insight 3.5及中文乱码问题解决方案** Source Insight是一款深受程序员喜爱的源代码查看和编辑工具,它以其强大的代码高亮、语法分析和跳转功能而闻名。然而,在处理含有中文字符的代码时,...

    Linux-基本命令,ppt版本

    以下是一些关键的Linux命令及其用途: 1. **目录结构**: - `/bin`:存放常用用户命令 - `/boot`:存放启动相关文件 - `/dev`:存储设备文件 - `/etc`:存储系统和服务配置 - `/home`:用户个人主目录 - `/...

    source命令与“.”点命令.doc

    在Linux系统及类Unix环境中,`source`命令和“.”(点)命令是非常重要的工具,它们主要用于在当前shell环境中执行另一个脚本文件,这对于配置环境变量、加载自定义设置等方面具有重要作用。 #### 二、`source`命令...

    Linux常用命令-电子书

    - vi的基本使用及命令: - 输入命令模式:按`Esc`键回到命令模式。 - `:x`:保存并退出。 - `:x!`:强制保存并退出。 - `:w`:保存文件。 通过以上详细解析,我们不仅了解了Linux系统中常见命令的基本用法,还...

Global site tag (gtag.js) - Google Analytics