簡體   English   中英

如何使shell腳本全局化?

[英]How to make a shell script global?

我在Mac的OS 10.6上,我正在嘗試學習關於shell腳本的一兩件事。 我理解如何保存shell腳本並使其可執行,但我想知道我可以做什么或者我可以保存文件以使其全局化(也就是說,無論我在哪個文件夾都可訪問)。

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

此外,任何有關shell腳本學習的資源建議都會有所幫助。 謝謝

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

傳統上,這樣的腳本要么進入~/bin (即:主目錄中的bin目錄)或/usr/local/bin/前者意味着腳本只適合你,后者適用於你希望任何人使用的腳本系統能夠運行。

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

有兩種方法可以做到 -

  1. 將您的腳本放在usr / local / bin中並確保它是可執行的(chmod + x my_script)(這已在路徑中設置,您可以通過執行echo $ PATH來檢查)
  2. 在主目錄中創建一個名為bin的文件夾。 (對於您的個人腳本)
    • cd~(帶你到你的主目錄)
    • mkdir bin(創建一個bin文件夾)
    • vim .bash_profile(設置路徑環境變量)
    • export PATH =〜/ bin:$ PATH(按i然后添加此行然后執行esc並輸入:wq)
    • 現在,您只需鍵入腳本的名稱,然后從任何位置運行它。

** 注意 :如果要使用縮短的命令運行腳本而不是鍵入整個文件名,請將以下內容添加到.bash_profile:
alias myscript='my_script.sh'
然后你可以通過輸入myscript來運行腳本。 (你可以用你想要的任何別名來分)

在mac操作系統中

  • 打開bash~ / .bashrc文件。
  • 使用export PATH =“$ PATH:/Users/sher.mohammad/Office/practice/practiceShell”在bashrc文件中添加腳本的路徑
  • 打開~./bash_profile文件並添加[[-s~ / .bashrc]] && source~ / .bashrc
  • 打開新的終端窗口現在無論何時打開終端,都會加載腳本

在使用bash shell時,將該腳本編寫為函數,然后將其放入.bashrc或通過“source file_name”獲取包含該函數的文件

現在通過shell中的函數調用執行腳本。

如果您熟悉bashrc文件,這個非常簡單! 這將完全使用您的.bashrc文件,需要2秒才能完成。

(我使用Arch Linux Manjaro,所以我使用位於我的主目錄中的.bashrc)

要放在.bashrc文件中的代碼:

# Simple bashrc method to launch anything in terminal from any directory

YOURCOMMAND () {
  cd /path/to/directory/containing/your/script/ && ./YOURSCRIPT
}

正如您所看到的,首先使用簡單的'cd'命令並將其命名為腳本位置的目錄,然后使用'&&'以便您可以立即執行下一個命令,最后打開腳本就像您一樣一般! 超級簡單並保存在.bash文件中! :)

希望我幫助過某人!

此致

AnonymousX

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

從'script.sh'的工作目錄“mv [script.sh] / usr / local / bin”(未經測試,但似乎是最不復雜的IMO方式。)

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM