文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux 中 source 命令的使用方式

2024-12-03 04:16

关注

 source命令是一个内置的shell命令,用于从当前shell会话中的文件读取和执行命令。source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个脚本,将会在当前shell中运行execute命令。

source命令可用于:

source命令的语法

source命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。

source FILENAME [ARGUMENTS]

也可以使用.替代source命令:

. FILENAME [ARGUMENTS]

如何使用source命令

一. 刷新当前的shell环境

可以在当前的shell环境中定义一个别名。为ls -al定义一个别名为ll: 

  1. [root@localhost ~]# echo "alias ll='ls -al'>> ~/.bashrc 

在~/.bashrc文件中定义完别名,可以使用source命令刷新当前shell环境: 

  1. [root@localhost ~]# source ~/.bashrc 

现在可以使用ll别名列出当前目录里所有文件了,包括隐藏文件。

二. 在当前环境使用source执行Shell脚本

Shell脚本不知道你在当前Shell环境中定义的变量。source命令可用于在当前会话中执行你的Shell脚本。

下面在定义一个变量: 

  1. [root@localhost ~]# website=https://www.linuxprobe.com 

创建一个脚本: 

  1. [root@localhost ~]# vim web.sh   
  2. #!/bin/bash  
  3. echo $website 

使用source在当前shell会话中执行它: 

  1. [root@localhost ~]# source web.sh   
  2. https://www.linuxprobe.com 

当使用sh运行脚本时,找不到环境中定义的变量:

三. 从脚本中导入环境中一个Shell函数

首先创建一个脚本,定义一个函数: 

  1. [root@localhost ~]# vim func.sh  
  2. #!/bin/bash  
  3. foo(){  
  4.   echo "test function!"  

要在当前的shell会话中导入上述脚本的功能,使用下面命令: 

  1. [root@localhost ~]# source func.sh 

下面在终端中执行以下func.sh脚本中的foo函数试试: 

  1. [root@localhost ~]# foo  
  2. test function! 

source完脚本之后,可以看到在当前回话的终端中可以执行脚本里面的函数。

四. 从另一个Shell脚本中读取变量

首先创建带有一些变量的shell脚本,请输入: 

  1. [root@localhost ~]# vim var.sh  
  2. #!/bin/bash  
  3. a=1  
  4. b=2  
  5. c=3 

再创建一个脚本,该脚本读取上一个脚本var.sh中的变量: 

  1. [root@localhost ~]# vim read.sh   
  2. #!/bin/bash  
  3. source ~/var.sh  
  4. echo $a  
  5. echo $b  
  6. echo $c 

在脚本中首先使用source将var.sh中的变量到处到当前回话,然后echo显示变量值。下面执行read.sh看一下:

五. 读取并执行命令

source命令可以从文件读取和执行命令。下面的一个文本文件中带有两个命令,使用source命令运行该文件,看看是否会执行里面的命令。

下面创建一个文件cmd.txt,保存两个命令: 

  1. [root@localhost ~]# cat cmd.txt   
  2. ip ad  
  3. date 

下面使用source执行这个文件: 

  1. [root@localhost ~]# source cmd.txt 

总    结

source命令在当前shell中执行脚本,而exec命令在新的shell中运行。 

 

来源:良许Linux内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯