Bash
使用 bash 在沒有 cd 的文件上執行點斜杠 (./) 的別名
我有一個這樣的目錄:
/home/user/Project/
Project
在許多子目錄內部和之後,我有一個腳本名稱ninja
,需要使用./ninja
. 換句話說:/home/user/Project/sub1/sub2/sub3/ninja
當然,我可以直接
cd
進入Project
並執行./ninja
. 但是,我正在編寫一個別名來通過 bashrc 執行該命令。
alias runNinja = cd ~/Project/sub1/sub2/sub3 && ./ninja
我們可以做到 1 個命令嗎?
alias runNinja = .~/Project/sub1/sub2/sub3/ninja
以上顯然不起作用,甚至這個
alias runNinja = ./home/user/Project/sub1/sub2/sub3/ninja
TL,DR:如何縮短別名以在目錄中執行腳本?
只需在 .bashrc 中的 $PATH 變數中附加路徑,如下所示:
export PATH=$PATH:/home/user/Project/sub1/sub2/sub3
並從任何你想要的地方執行它,即使沒有 ./
$ ninja
但是當然你也可以設置別名
alias runNinja='/home/user/Project/sub1/sub2/sub3/ninja'
並從任何地方執行:
$ runNinja
如果您在執行此程序時有意進入該目錄(例如:如果您正在處理任何文件作為該目錄或依賴項的輸入/輸出),則必須在 ~/.bashrc 文件或配置文件中編寫如下函式:
runNinja() { cd /home/user/Project/sub1/sub2/sub3 && ./ninja "$@" }