
我有這個文件:
/Users/MYUSERNAME/asciidots/asciidots/__main__.py
我想給它一個別名,以便它像在我目前的目錄中一樣運作。我在想這樣的事情:
alias asciidots="OLDCWD=$PWD && cd /Users/MYUSERNAME/asciidots/asciidots/ && python3 __main__.py ALL_ARGUMENTS_FOLLOWING_THE_ALIAS && cd $OLDCWD"
但我不知道有什麼方法可以做到這一點。
答案1
使用函數代替:
asciidots() (
cd /Users/MYUSERNAME/asciidots/asciidots/ &&
python3 __main__.py "$@"
)
"$@"
擴展到函數的參數,這裡我使用( .. )
而不是{ .. }
函數體周圍來使其在子 shell 中運行。子 shell 環境有自己的工作目錄,因此之後不需要跳回原始目錄。
(如果我沒記錯的話,這至少應該在 Zsh 和 Bash 中有效。)
看:在 Bash 中,何時使用別名、何時使用腳本以及何時編寫函數?(標題說的是 Bash,但大部分也可能與 Zsh 相關。)