我在Mac的OS 10.6上,我正在嘗試學習一些關於shell腳本的東西。我知道如何保存一個shell腳本並使其可執行,但我想知道我可以做什麼或在哪裏可以保存該文件以使其成爲全局文件(即,無論我在哪個文件夾中都可訪問)。如何使shell腳本全局化?
例如,如果我將.sh文件保存在/ Users/username /目錄中並使其可執行,那麼我只能在該特定目錄中執行該腳本。例如,如果我導航到/用戶/用戶名/下載,我無法執行腳本。
此外,任何有關了解shell腳本編寫的資源建議都會有所幫助。謝謝
我在Mac的OS 10.6上,我正在嘗試學習一些關於shell腳本的東西。我知道如何保存一個shell腳本並使其可執行,但我想知道我可以做什麼或在哪裏可以保存該文件以使其成爲全局文件(即,無論我在哪個文件夾中都可訪問)。如何使shell腳本全局化?
例如,如果我將.sh文件保存在/ Users/username /目錄中並使其可執行,那麼我只能在該特定目錄中執行該腳本。例如,如果我導航到/用戶/用戶名/下載,我無法執行腳本。
此外,任何有關了解shell腳本編寫的資源建議都會有所幫助。謝謝
/usr/local/bin
將是最合適的位置。 Mac OS X上有它的PATH
默認
你應該把它放在你機器上的全局可執行文件目錄中。我認爲在基於Unix的操作系統上通常是/usr/bin
(但是這通常需要該機器的超級用戶權限)。
您也可以將它放在$PATH
環境變量中的任何其他目錄中,但它只適用於那些在該變量中具有該目錄的用戶。
通過在shell中鍵入echo $PATH
可以找到值$PATH
。目錄由:
分隔。
我要去downvote因爲在/ usr/bin是本錯誤的答案/ usr/local/bin是專爲「本地」設計的cripts(即:你創建的,而不是系統附帶的)。 – 2010-08-24 19:44:19
要麼將它保存在/usr/bin
(或任何其他存在於PATH
中的目錄),要麼編輯PATH
以包含您保存它的目錄,基本上它會在任何目錄中運行。
在操作系統升級過程中,'/ usr/bin'可以完全清空並替換,使您的腳本神祕消失。 ''/ usr/local/bin'就是爲了這個目的,就像Bryan Oakley所說的那樣。另請參閱[文件系統層次結構標準](http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY) – 2010-08-24 20:01:31
傳統上,這些腳本或者去~/bin
(即:在你的主目錄下的bin目錄下)或/usr/local/bin/
前者意味着腳本只能爲你工作,後者是您希望系統上任何人都可以運行的腳本。
如果你把它放在~/bin
中,你可能需要將它添加到PATH環境變量中。 /usr/local/bin
應該已經在路上。
使用bash shell中,編寫腳本的功能,然後把它放到.bashrc或者來源,包含該函數的「源FILE_NAME」
現在,通過在shell函數調用執行腳本文件。
有兩種方法可以做到這一點 -
在MAC, 1.導出腳本路徑,出口PATH = 「$ PATH:」 (例如/用戶/謝爾/ practiceShell /箱 「)
看了一下'PATH'環境變量,然後再更新的問題。 – 2010-08-24 19:36:23