Linux中source命令的使用方式


source命令是一個內置的shell命令,用於從當前shell會話中的文件讀取和執行命令。source命令通常用於保留、更改當前shell中的環境變量。簡而言之,source一個腳本,將會在當前shell中運行execute命令。

source命令可用於:

  • 刷新當前的shell環境
  • 在當前環境使用source執行Shell腳本
  • 從腳本中導入環境中一個Shell函數
  • 從另一個Shell腳本中讀取變量
source命令的語法

source命令它需要一個文件,如果提供了參數,那么將用作傳遞腳本的位置參數。

source FILENAME [ARGUMENTS]

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

. FILENAME [ARGUMENTS]
如何使用source命令
1. 刷新當前的shell環境

可以在當前的shell環境中定義一個別名。為ls -al定義一個別名為ll

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

在~/.bashrc文件中定義完別名,可以使用source命令刷新當前shell環境:

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

現在可以使用ll別名列出當前目錄里所有文件了,包括隱藏文件。
Linux中source命令的使用方式Linux中source命令的使用方式

2. 在當前環境使用source執行Shell腳本

Shell腳本不知道你在當前Shell環境中定義的變量。source命令可用於在當前會話中執行你的Shell腳本。

下面在定義一個變量:

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

Linux中source命令的使用方式Linux中source命令的使用方式
創建一個腳本:

[root@localhost ~]# vim web.sh 

#!/bin/bash
echo $website

Linux中source命令的使用方式Linux中source命令的使用方式
使用source在當前shell會話中執行它:

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

Linux中source命令的使用方式Linux中source命令的使用方式
當使用sh運行腳本時,找不到環境中定義的變量:
Linux中source命令的使用方式Linux中source命令的使用方式

3. 從腳本中導入環境中一個Shell函數

首先創建一個腳本,定義一個函數:

[root@localhost ~]# vim func.sh

#!/bin/bash
foo(){
  echo "test function!"
}

Linux中source命令的使用方式Linux中source命令的使用方式
要在當前的shell會話中導入上述腳本的功能,使用下面命令:

[root@localhost ~]# source func.sh 

下面在終端中執行以下func.sh腳本中的foo函數試試:

[root@localhost ~]# foo
test function!

Linux中source命令的使用方式Linux中source命令的使用方式
source完腳本之后,可以看到在當前回話的終端中可以執行腳本里面的函數。

4. 從另一個Shell腳本中讀取變量

首先創建帶有一些變量的shell腳本,請輸入:

[root@localhost ~]# vim var.sh

#!/bin/bash
a=1
b=2
c=3

Linux中source命令的使用方式Linux中source命令的使用方式
再創建一個腳本,該腳本讀取上一個腳本var.sh中的變量:

[root@localhost ~]# vim read.sh 

#!/bin/bash
source ~/var.sh
echo $a
echo $b
echo $c

在腳本中首先使用source將var.sh中的變量到處到當前回話,然后echo顯示變量值。下面執行read.sh看一下:
Linux中source命令的使用方式Linux中source命令的使用方式

5. 讀取並執行命令

source命令可以從文件讀取和執行命令。下面的一個文本文件中帶有兩個命令,使用source命令運行該文件,看看是否會執行里面的命令。

下面創建一個文件cmd.txt,保存兩個命令:

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

下面使用source執行這個文件:

[root@localhost ~]# source cmd.txt 

Linux中source命令的使用方式Linux中source命令的使用方式

總結

source命令在當前shell中執行腳本,而exec命令在新的shell中運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM