![如何製作自訂 bash 指令? (運行 python、perl、ruby 檔)](https://rvso.com/image/1604254/%E5%A6%82%E4%BD%95%E8%A3%BD%E4%BD%9C%E8%87%AA%E8%A8%82%20bash%20%E6%8C%87%E4%BB%A4%EF%BC%9F%20%EF%BC%88%E9%81%8B%E8%A1%8C%20python%E3%80%81perl%E3%80%81ruby%20%E6%AA%94%EF%BC%89.png)
我想使用在 Python/Perl/Ruby 上運行的某些工具。例如,myProgram.py
儲存在 ~/folder1/folder2/ 中。我想使用 bash 的輸入來運行它,例如>>> myProgram -h
.
到目前為止,我已經閱讀了兩種類似的方法:
- 在 bin 目錄中建立檔案:
# in /bin/
~/folder1/folder2/myProgram
# this works when the target is a bash program
- 編輯
~/.bashrc
永久別名:
# in ~/.bashrc
alias myProgram='python ~/folder1/folder2/myProgram.py'
不幸的是,第一種方法似乎不適用於非 bash 文件(據我嘗試過),而第二種方法只返回一個錯誤,例如myProgram: command not found
.
我應該如何製作 bash 命令以便透過命令輸入快速存取我的 Python/Perl/Ruby 工具?
答案1
要像這樣運行腳本,您需要三件事:
- 腳本必須位於變數中列出的目錄中
$PATH
。如果您將腳本放入~/bin
, 以便在登入時不指定檔案的完整路徑來執行它們,則需要.bashrc
透過新增以下行來擴展您的路徑export PATH=$PATH:~/bin
。要查看路徑中已有哪些目錄,您只需列印它即可echo $PATH
。要對文件進行任何更改,.bashrc
您需要重新登入(或重新運行 bash)。 - 腳本必須具有可執行位權限集。為此,請執行命令
chmod +x /path/to/script
- 腳本必須告訴使用哪個解釋器來運行它。為此,使用腳本中特殊的第一行,稱為 shebang:
#!/path/to/interpreter
。對於 Python 來說,這將是#!/usr/bin/python
.由於不同的作業系統可能在不同的位置有二進位文件,因此建議使用 shebang 形式,#!/usr/bin/env python
無論它在哪裡,它都會執行預設的 Python 解釋器。
更新:根據評論,我正在使用符號連結更新此答案。如果您只是想讓已安裝的工具更易於訪問,則不必建立腳本。您只需要找到該工具的可執行檔(或者如果它是腳本,則使其可執行(如果它還不是)),然後將符號連結(請參閱man ln
)放入$PATH 中的目錄中(或將具有可執行檔的目錄會新增到您的 $小路)。
注意:只需使腳本可執行(參見 2.)並添加alias
到您的.bashrc
意誌中也可以,但每次創建新腳本時添加新別名非常不方便。