Linux中source命令的使用方式

夢共裡醉 發表於 2021-10-18
Linux
source 是一個內建的 ,用於從當前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

[[email protected] ~]# echo "alias ll='ls -al'" >> ~/.bashrc

在~/.bashrc檔案中定義完別名,可以使用source命令重新整理當前shell環境:

[[email protected] ~]# source ~/.bashrc

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

2. 在當前環境使用source執行Shell指令碼

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

下面在定義一個變數:

[[email protected] ~]# website=

Linux中source命令的使用方式Linux中source命令的使用方式
建立一個指令碼:

[[email protected] ~]# vim web.sh 
#!/bin/bash
echo $website

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

[[email protected] ~]# source web.sh 

Linux中source命令的使用方式Linux中source命令的使用方式
當使用sh執行指令碼時,找不到環境中定義的變數:
Linux中source命令的使用方式Linux中source命令的使用方式

3. 從指令碼中匯入環境中一個Shell函式

首先建立一個指令碼,定義一個函式:

[[email protected] ~]# vim func.sh
#!/bin/bash
foo(){
  echo "test function!"
}

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

[[email protected] ~]# source func.sh

下面在終端中執行以下func.sh指令碼中的 foo函式試試:

[[email protected] ~]# foo
test function!

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

4. 從另一個Shell指令碼中讀取變數

首先建立帶有一些變數的shell指令碼,請輸入:

[[email protected] ~]# vim var.sh
#!/bin/bash
a=1
b=2
c=3

Linux中source命令的使用方式Linux中source命令的使用方式
再建立一個指令碼,該指令碼讀取上一個指令碼 var.sh中的變數:

[[email protected] ~]# 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,儲存兩個命令:

[[email protected] ~]# cat cmd.txt 
ip ad
date

下面使用 source執行這個檔案:

[[email protected] ~]# source cmd.txt

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

總結

source命令在當前shell中執行指令碼,而 exec命令在新的shell中執行。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2837789/,如需轉載,請註明出處,否則將追究法律責任。