Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux source 命令詳解:讓腳本影響當前 Shell 環境

編輯:關於 Linux

source 是 Bash 內建命令,用於在當前 Shell 環境中讀取並執行指定腳本檔案的內容。它常用於重新載入環境變數配置(如 .bashrc、.bash_profile),或執行需修改當前 Shell 狀態的腳本。本文詳細解析其語法、特性與實戰場景。

基本語法

source filename
# 或簡寫
. filename

注意: . 與檔名之間需有空格。source 來自 C Shell,. 來自 Bourne Shell,功能完全相同。

核心特性

特性source / .直接執行腳本 (./script.sh)
執行環境當前 Shell(父 Shell)子 Shell
環境變數修改保留在當前 Shell子 Shell 結束即銷毀
需執行權限不需要需要 (chmod +x)
別名/函數定義生效於當前 Shell不生效

常見使用場景

1. 重新載入環境配置

# 修改 ~/.bashrc 後立即生效
source ~/.bashrc
# 或
. ~/.bashrc

2. 載入專案專用環境變數

# Android 編譯環境
source build/envsetup.sh

# Python 虛擬環境啟動腳本
source venv/bin/activate

3. 執行包含函數定義的腳本庫

# lib.sh 定義了 log_info()、log_error() 等函數
source /path/to/lib.sh
log_info "服務啟動中..."

進階用法

帶參數執行

source script.sh arg1 arg2
# 腳本內可用 $1、$2 獲取參數

條件式載入

# 僅當檔案存在時載入
[ -f ~/.bash_aliases ] && source ~/.bash_aliases

除錯模式

source -x script.sh  # 顯示每條執行命令(需 Bash 4.1+)

常見誤區與避坑

  • 誤用 sh script.sh 載入配置: 這會啟動子 Shell,環境變數不會保留。
  • 腳本中使用 exit: 在 source 執行的腳本中呼叫 exit 會直接關閉當前終端機/Shell。請改用 return。
  • 路徑問題: 若檔案不在 $PATH 中,需給出相對或絕對路徑(如 source ./config.sh)。

對比:source vs export

  • source:影響當前 Shell 及其後續子 Shell(透過繼承)。
  • export:將變數標記為環境變數,僅影響其後建立的子 Shell,不影響父 Shell 或同級 Shell。

熟練使用 source 能大幅提升 Shell 配置管理與腳本開發效率,是 Linux 使用者必備技能。

Copyright © Windows教程網 All Rights Reserved