跳至內容

source (命令)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

source是一個Shell內建命令,用以在當前上下文(當前shell環境)中執行某檔案中的一組命令,source命令可簡寫為一個點(.)。[1]

上下文:一般指的是在互動式對談中,用戶當前敲入命令的那個終端。

例子

[編輯]

source 脚本名,是在當前shell環境下執行。

sh 脚本名,是通過建立子shell環境並進行執行。例子如下:

$ cat modify_a.sh
a=2
$ #
$ echo $a

$ sh modify_a.sh 
$ echo $a

$ # sh命令并没有影响当前的shell环境(上下文),a没有被赋值
$ source modify_a.sh # 等价 . modify_a.sh
$ echo $a
2
$ # source命令将影响当前的shell环境(上下文),a被赋值了

用法

[編輯]

source陳述式更適合模組化設計,將長代碼切割成小模組代碼。

例1對談開始時,用戶設定檔( profile files) .bashrc and .profile將會被執行。

例2通過source陳述式,可以實現類似匯入包的功能。

#!/bin/sh
# 本文件名为: echo_a.sh
# 文件内容为: a=2
source modify_a.sh

echo $a

在部署環境時,source也常常被使用,因為它能夠影響當前的上下文。


參見

[編輯]

參考文獻

[編輯]
  1. ^ "BASH BUILTIN COMMANDS", the (GNU) Linux man page for "source" in Bash-3.0. 2004 Apr 20