2010-08-24 133 views
42

我在Mac的OS 10.6上,我正在嘗試學習一些關於shell腳本的東西。我知道如何保存一個shell腳本並使其可執行,但我想知道我可以做什麼或在哪裏可以保存該文件以使其成爲全局文件(即,無論我在哪個文件夾中都可訪問)。如何使shell腳本全局化?

例如,如果我將.sh文件保存在/ Users/username /目錄中並使其可執行,那麼我只能在該特定目錄中執行該腳本。例如,如果我導航到/用戶/用戶名/下載,我無法執行腳本。

此外,任何有關了解shell腳本編寫的資源建議都會有所幫助。謝謝

+1

看了一下'PATH'環境變量,然後再更新的問題。 – 2010-08-24 19:36:23

回答

68

/usr/local/bin將是最合適的位置。 Mac OS X上有它的PATH默認

-1

你應該把它放在你機器上的全局可執行文件目錄中。我認爲在基於Unix的操作系統上通常是/usr/bin(但是這通常需要該機器的超級用戶權限)。

您也可以將它放在$PATH環境變量中的任何其他目錄中,但它只適用於那些在該變量中具有該目錄的用戶。

通過在shell中鍵入echo $PATH可以找到值$PATH。目錄由:分隔。

+7

我要去downvote因爲在/ usr/bin是本錯誤的答案/ usr/local/bin是專爲「本地」設計的cripts(即:你創建的,而不是系統附帶的)。 – 2010-08-24 19:44:19

1

要麼將​​它保存在/usr/bin(或任何其他存在於PATH中的目錄),要麼編輯PATH以包含您保存它的目錄,基本上它會在任何目錄中運行。

+4

在操作系統升級過程中,'/ usr/bin'可以完全清空並替換,使您的腳本神祕消失。 ''/ usr/local/bin'就是爲了這個目的,就像Bryan Oakley所說的那樣。另請參閱[文件系統層次結構標準](http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY) – 2010-08-24 20:01:31

30

傳統上,這些腳本或者去~/bin(即:在你的主目錄下的bin目錄下)或/usr/local/bin/前者意味着腳本只能爲你工作,後者是您希望系統上任何人都可以運行的腳本。

如果你把它放在~/bin中,你可能需要將它添加到PATH環境變量中。 /usr/local/bin應該已經在路上。

2

使用bash shell中,編寫腳本的功能,然後把它放到.bashrc或者來源,包含該函數的「源FILE_NAME」

現在,通過在shell函數調用執行腳本文件。

9

有兩種方法可以做到這一點 -

  1. 把你的腳本USR/local/bin目錄,並確保它運行(chmod + X my_script)(這是在路徑已經設置,你可以通過執行echo $ PATH來檢查)
  2. 在您的主目錄中創建一個名爲bin的文件夾。 (爲了您的人身腳本)
    • CD〜(轉至你的home目錄)
    • 的mkdir斌(創建一個bin文件夾)
    • 活力。在.bash_profile(設置PATH環境變量)
    • 出口PATH =〜/斌:$ PATH(按i鍵,然後加入這行,然後做ESC和類型:WQ)
    • 現在你只需輸入你的腳本的名稱和從你想要的任何地方運行它。
1

在MAC, 1.導出腳本路徑,出口PATH = 「$ PATH:」 (例如/用戶/謝爾/ practiceShell /箱 「)

  • 中的.bashrc文件中添加腳本(〜/ .bashrc)中。