[20210330]bash使用source or ..呼叫shell指令碼注意txt

lfree發表於2021-03-30

[20210330]bash使用source or ..呼叫shell指令碼注意txt

--//前一陣子寫bash shell指令碼遇到的問題做一個記錄。我測試環境定義的PATH環境變數如下:

$ echo $PATH | tr ":" "\n" | uniq
/bin
/home/oracle/anysql
/home/oracle/bin
/u01/app/oracle/product/11.2.0.4/dbhome_1/bin
/u01/app/oracle/product/11.2.0.4/dbhome_1/jdk/bin
/usr/bin
/usr/kerberos/bin
/usr/local/bin
/usr/NX/bin

--//當我在當前某個目錄執行指令碼f.sh程式時,執行如下:
$ cd tkprof
$ source f.sh

--//我發現輸出結果並不是我希望的,很明顯f.sh並不是我要訪問的bash shell指令碼。檢查發現在/home/oracle/bin目錄下也存在一個
--//f.sh指令碼程式。估計時我以前順手寫的沒有刪除,這在以後工作中注意。
 $ which f.sh
~/bin/f.sh

--//也就是執行source f.sh時,優先訪問PATH環境變數指定的路徑,然後才是本地目錄。
--//所以最佳的執行方式是使用絕對路徑或者相對路徑。

$ source ./f.sh

--//這樣安全可靠。
--//另外我個人不建議使用當前目錄.加入到PATH目錄中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2765605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章