source
命令用于在當(dāng)前Shell運(yùn)行文件中的命令,source命令可用于將函數(shù),變量和配置文件加載當(dāng)前Shell。
source
是Bash內(nèi)置的命令,Bash是Linux和UNIX操作系統(tǒng)最流行Shell之一。source
命令之間的行為可能略有不同。
在本教程中,我們將會(huì)說(shuō)明如何在Linux使用source命令運(yùn)行文件的命令,加載變量與函數(shù)等。
source命令
source
命令的語(yǔ)法有兩種,第一種是source FILENAME [ARGUMENTS]
。第二種是.FILENAME [ARGUMENTS]
。
.
是source
命令的別名。如果FILENAME
不是文件的絕對(duì)路徑,source
命令將在PATH
環(huán)境變量指定的目錄搜索文件FILENAME
。
如果在$PATH
中找不到文件FILENAME
,source
命令將在當(dāng)前目錄中搜索文件FILENAME
。
如果FILENAME
文件存在,source
命令退出代碼為0
。如果找不到文件FILENAME
,source
命令退出代碼為1
。
如果ARGUMENTS
有給出,ARGUMENTS
將成為FILENAME
文件的位置參數(shù),ARGUMENTS
可以是一個(gè)或者多個(gè)。
source 命令加載函數(shù)
如果您的多個(gè)Shell腳本有著相同的函數(shù),則可以將函數(shù)提取到一個(gè)單獨(dú)的文件中,然后在腳本中加載這些函數(shù)。
假設(shè)當(dāng)前目錄存在文件functions.sh。文件包含bash函數(shù)check_root
,用于檢查運(yùn)行腳本的用戶是否是root用戶,如果不是root用戶,它將顯示一條消息并退出腳本。
現(xiàn)在你想在另一個(gè)腳本文件使用functions.sh文件包含的check_root
函數(shù)檢查運(yùn)行腳本的用戶是否是root用戶。
此時(shí),你只需在腳本簡(jiǎn)單的運(yùn)行命令source functions.sh
即可將check_root
函數(shù)加載當(dāng)前Shell會(huì)話。
#!/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 命令加載變量
假設(shè)你當(dāng)前目錄存在文件config.sh。文件包含兩行Shell代碼,行name="myfreax"
設(shè)置變量name
。echo "Hello ${name}!"
運(yùn)行echo命令打印變量name
的值。
現(xiàn)在如果你想使用config.sh
的name
變量,可以運(yùn)行命令source config.sh
將name
變量加載到當(dāng)前Shell會(huì)話。
你也可以使用source命令的別名.
。運(yùn)行命令. config.sh
將name
變量加載到當(dāng)前Shell會(huì)話。
source config.sh
#eq
. config.sh
name="myfreax"
echo "Hello ${name}!"
config.sh
結(jié)論
在本教程中,你了解如何在Linux使用source命令加載變量與函數(shù),運(yùn)行文件的命令。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209328 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62571 -
命令
+關(guān)注
關(guān)注
5文章
683瀏覽量
22011 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28360 -
Source
+關(guān)注
關(guān)注
0文章
17瀏覽量
9818
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論