Bash

Shell 腳本在終端中執行,但不是從 shell 腳本文件中執行

  • February 21, 2012

可能重複:

如何在 bash 腳本中“導出”變數?

我從文件執行腳本時遇到問題。當我輸入命令行

PATH=$PATH:/home/

然後PATH適當地改變。但是當我執行這個文件時:

#!/bin/sh
#provided by me

PATH=$PATH:/home/
echo "done"
exit 0

done已列印但未PATH更改。為什麼會這樣?

環境變數更改適用於目前程序和任何後續子程序,但不適用於父程序。所以如果你執行一個腳本,它不會影響執行它的 shell 的環境變數。您需要source使用.shell 內置腳本。IE

. /path/to/script

這會導致目前 shell 執行文件中的命令,而不是執行子程序。

引用自:https://unix.stackexchange.com/questions/32222