source
命令用于在當前Shell運行文件中的命令,source命令可用于將函數,變量和配置文件加載當前Shell。
source
是Bash內置的命令,Bash是Linux和UNIX操作系統最流行Shell之一。source
命令之間的行為可能略有不同。
在本教程中,我們將會說明如何在Linux使用source命令運行文件的命令,加載變量與函數等。
source命令
source
命令的語法有兩種,第一種是source FILENAME [ARGUMENTS]
。第二種是.FILENAME [ARGUMENTS]
。
.
是source
命令的別名。如果FILENAME
不是文件的絕對路徑,source
命令將在PATH
環境變量指定的目錄搜索文件FILENAME
。
如果在$PATH
中找不到文件FILENAME
,source
命令將在當前目錄中搜索文件FILENAME
。
如果FILENAME
文件存在,source
命令退出代碼為0
。如果找不到文件FILENAME
,source
命令退出代碼為1
。
如果ARGUMENTS
有給出,ARGUMENTS
將成為FILENAME
文件的位置參數,ARGUMENTS
可以是一個或者多個。
source 命令加載函數
如果您的多個Shell腳本有著相同的函數,則可以將函數提取到一個單獨的文件中,然后在腳本中加載這些函數。
假設當前目錄存在文件functions.sh。文件包含bash函數check_root
,用于檢查運行腳本的用戶是否是root用戶,如果不是root用戶,它將顯示一條消息并退出腳本。
現在你想在另一個腳本文件使用functions.sh文件包含的check_root
函數檢查運行腳本的用戶是否是root用戶。
此時,你只需在腳本簡單的運行命令source functions.sh
即可將check_root
函數加載當前Shell會話。
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
check_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
functions.sh
source 命令加載變量
假設你當前目錄存在文件config.sh。文件包含兩行Shell代碼,行name="myfreax"
設置變量name
。echo "Hello ${name}!"
運行echo命令打印變量name
的值。
現在如果你想使用config.sh
的name
變量,可以運行命令source config.sh
將name
變量加載到當前Shell會話。
你也可以使用source命令的別名.
。運行命令. config.sh
將name
變量加載到當前Shell會話。
source config.sh
#eq
. config.sh
name="myfreax"
echo "Hello ${name}!"
config.sh
結論
在本教程中,你了解如何在Linux使用source命令加載變量與函數,運行文件的命令。
-
Linux
+關注
關注
87文章
11232瀏覽量
208948 -
函數
+關注
關注
3文章
4308瀏覽量
62444 -
命令
+關注
關注
5文章
678瀏覽量
21987 -
變量
+關注
關注
0文章
613瀏覽量
28334 -
Source
+關注
關注
0文章
17瀏覽量
9803
發布評論請先 登錄
相關推薦
評論