`
orcl_zhang
  • 浏览: 244628 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux Source命令及脚本的执行方式解析(转)

阅读更多
来源http://www.51testing.com/?uid-225738-action-viewspace-itemid-206878

当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile
对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。

source命令:
source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。
功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:
source filename 或 . filename
source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。

source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。
2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。


举例说明:
1.新建一个test.sh脚本,内容为:A=1
2.然后使其可执行chmod +x test.sh
3.运行sh test.sh后,echo $A,显示为空,因为A=1并未传回给当前shell
4.运行./test.sh后,也是一样的效果
5.运行source test.sh 或者 . test.sh,然后echo $A,则会显示1,说明A=1的变量在当前shell中
分享到:
评论

相关推荐

    详解shell中source、sh、bash、./执行脚本的区别

    了解这些执行方式的区别对于编写和调试shell脚本至关重要,因为这会影响脚本如何与当前shell环境交互,以及变量和命令的可见性和生命周期。在日常工作中,根据需要控制脚本执行的范围和效果,选择合适的执行方法是...

    linux下source命令使用详解

    Linux Source命令及脚本的执行方式解析 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile 对source进行了学习,并且用它与sh 执行脚本进行了对比,...

    [Linux]Shell脚本编程详解

    在Linux操作系统中,Shell脚本是一种强大的自动化工具,它允许用户通过编写一系列命令来执行复杂的任务。这篇文章将深入探讨Shell脚本编程的基础知识,包括语法、常用命令以及如何创建和运行自定义脚本。 1. Shell...

    书籍Linux编程命令详解

    在Linux中,命令行界面(CLI)是与操作系统交互的主要方式之一,它提供了丰富的命令工具,能够快速执行各种任务,如文件管理、进程控制、网络通信等。以下将详细解析几个关键的Linux编程命令: 1. **`ls`**:列出...

    linux命令大全和解析.rar

    - `source`:执行当前环境中的shell脚本。 - `alias`:创建命令别名,简化常用命令输入。 8. 其他实用命令: - `history`:显示过去的命令历史。 - `clear`:清空终端屏幕。 - `man`:查看命令的帮助文档。 ...

    linux下的特殊命令

    在Linux操作系统中,掌握一些特殊的命令和Shell脚本技巧对于日常的系统管理和自动化任务执行至关重要。以下是关于"linux下的特殊命令"的详细知识点: 1. **Shell脚本调试方法**: - `set -x`:开启命令追踪,打印...

    最危险的10个Linux命令,希望你牢记在心.doc

    本文将详细解析十个最危险的Linux命令,提醒用户谨慎使用,避免造成不可挽回的损失。 1. `rm -rf` 命令:`rm` 是删除文件的命令,`-r` 用于递归删除目录,`-f` 表示强制执行,忽略任何提示。误用此命令,如`rm -rf ...

    Linux 最危险的命令

    本文将详细解析一些最危险的Linux命令,这些命令如果不慎使用,可能会导致数据丢失、系统崩溃甚至硬件损坏。 首先,我们要讨论的是`rm -rf`命令。`rm`是删除文件的基本命令,而`-r`选项表示递归删除,即连同子目录...

    Linux Shell程序设计 Ubuntu 实验二

    【Linux Shell程序设计 Ubuntu 实验二】实验主要涵盖...通过这些实验,学生不仅能学习到Shell脚本的基础知识,还能了解Linux系统的用户管理和自动化任务执行。这对于日常的系统管理和自动化运维工作是非常重要的技能。

    linux常用命令加实例大全

    ### Linux常用命令加实例大全:深入解析与应用 在IT领域,尤其是系统管理和软件开发中,Linux操作系统以其稳定性、安全性和灵活性而著称。对于初学者乃至经验丰富的工程师而言,熟练掌握一系列基本到高级的Linux...

    redhat linux关键命令

    根据给定的文件标题“Redhat Linux关键命令”及其描述、标签和部分内容,本文将深入解析其中提及的多个Linux命令,这些命令对于Redhat Linux系统的管理和操作至关重要。 ### 1. cat - 显示文件内容 `cat`命令用于...

    Linux常用命令大全

    这篇文档将深入解析一些Linux入门级别的常用命令,帮助初学者更好地理解和操作Linux系统。 1. **Linux进入与退出系统** - **进入Linux系统**:在大多数情况下,用户通过图形化界面登录,或者在终端模拟器中输入...

    linux-optparseBASH的简单命令行参数解析器

    通常,你需要将`optparse`源代码复制到你的脚本文件中,或者将`optparse`的源代码文件放在一个可访问的路径下,并在脚本中通过`source`命令引入。 2. **定义选项**:定义你要支持的命令行选项,这可以通过调用`...

    shell命令/shell脚本编写教程

    在IT行业中,Shell脚本是Linux/Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“shell命令/shell脚本编写教程”涵盖了如何在Linux或BSD环境下有效利用...

    redhat Linux命令大全

    - **which**: 查找命令的完整路径,帮助理解命令执行的具体位置。 - **type**: 显示命令的类型,如内部命令、外部命令等。 - **echo**: 打印文本或变量值到标准输出。 - **set**: 设置shell的选项,常用于调试脚本。...

    操作系统学习—linux命令手册

    - **命令执行**: 在Linux中,通过命令行执行各种任务是最常见的操作方式。 - **简单命令**: 包括`ls`(列出目录内容)、`cd`(改变当前目录)等常用命令。 - **获取帮助**: Linux提供了多种方式来获取命令的帮助信息...

    linux脚本编写基础

    在Linux脚本中,为了确保脚本能够被正确解析和执行,第一行必须指定解释器的位置,通常采用如下格式: ```sh #!/bin/sh ``` 这里的`#!/bin/sh`称为shebang(即解释器指示符),它告诉系统使用哪个解释器来执行脚本...

    Linux 服务器日常巡检脚本分享.doc

    该脚本使用 `export` 命令来设置环境变量,然后使用 `source` 命令来加载环境变量。 十、邮件发送 该脚本使用 `mail` 命令来发送报表到指定的邮箱中。 该 Linux 服务器日常巡检脚本可以帮助系统管理员更好地管理...

    linux部署常用命令

    - **执行SQL脚本:** `source *.sql` - **说明:** 执行当前目录下的所有SQL脚本文件。 #### 二、管理MySQL软件包 - **查询已安装的MySQL相关软件包:** `rpm -qa | grep -i mysql` - **说明:** 使用`rpm -qa`命令...

Global site tag (gtag.js) - Google Analytics