快速指南介紹了“export”指令,該指令用於將變量導出到子進程中
“export”指令用於將變量導出到子進程中。
這意味著什麼呢?
假設您以以下方式定義了一個名為TEST的變量:
TEST="test"
您可以使用echo $TEST
來打印其值:
但是,如果您嘗試在名為script.sh
的文件中定義一個包含上述命令的Bash腳本:
然後,您設置chmod u+x script.sh
,並使用./script.sh
執行此腳本,echo $TEST
將不打印任何內容!
這是因為在Bash中,TEST
變量是在shell本地定義的。在執行shell腳本或其他命令時,將啟動一個子shell來執行它,該子shell不包含當前shell的本地變量。
為了使該變量在子shell中可用,我們需要使用以下方式定義TEST
變量:
export TEST="test"
嘗試這樣做,現在運行./script.sh
應該會打印出“test”:
有時您需要將內容附加到變量中。這在 PATH
變量中經常使用。您可以使用以下語法:
export PATH=$PATH:/new/path
通常在以這種方式創建新變量時使用export
,同樣地,當使用Bash在.bash_profile
或.bashrc
配置文件中創建變量時,或者使用Zsh在.zshenv
中創建變量時也要使用export
。
要刪除一個變量,可以使用 -n
選項:
export -n TEST
調用export
而不帶任何選項將列出所有導出的變量。
export
指令適用於Linux、macOS、WSL以及任何具有UNIX環境的地方。