Linux 中 Source 命令的使用方式

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

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

[[399592]]

source命令可用于:

  • 刷新当前的shell环境
  • 在当前环境使用source执行Shell脚本
  • 从脚本中导入环境中一个Shell函数
  • 从另一个Shell脚本中读取变量

source命令的语法

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

  1. source FILENAME [ARGUMENTS] 

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

  1. . 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.  
  3. #!/bin/bash 
  4. echo $website 

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

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

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

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

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

  1. [root@localhost ~]# vim func.sh 
  2.  
  3. #!/bin/bash 
  4. foo(){ 
  5.   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.  
  3. #!/bin/bash 
  4. a=1 
  5. b=2 
  6. c=3 

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

  1. [root@localhost ~]# vim read.sh  
  2.  
  3. #!/bin/bash 
  4. source ~/var.sh 
  5. echo $a 
  6. echo $b 
  7. 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就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2021-05-31 11:30:43

Linuxsource命令

2022-01-06 07:03:30

Linux SleepWait

2022-09-27 10:07:01

要使用 source

2023-06-05 18:26:39

Linux操作系统

2009-08-03 10:12:37

find命令详解find命令linux

2023-05-05 08:18:38

Linuxsource命令

2010-06-22 13:08:42

Linux At命令

2010-06-22 13:23:18

Linux at命令详

2009-08-03 11:38:57

linux at命令详linux at命令

2023-10-09 07:33:50

Linuxls 命令

2009-08-16 20:11:50

linux中talk命talk命令参数linux命令行参数

2022-02-08 12:19:36

LinuxJQ命令

2022-10-13 20:09:32

userdelLinux

2012-05-11 10:10:47

Linuxgrep

2021-08-02 13:38:21

Linuxalias命令

2020-12-07 06:42:09

LinuxIP命令

2009-08-17 08:42:48

LinuxScreen命令使用技巧

2020-06-28 07:33:01

source命令BashLinux

2020-02-18 20:00:31

PostgreSQL数据库

2018-01-08 15:30:18

Linux命令date
点赞
收藏

51CTO技术栈公众号