Bash
如何為每個目錄設置別名?
假設您有一個 alias
go
,但希望它在不同的目錄中做不同的事情?它應該在一個目錄中執行
cmd1
,但在另一個目錄中它應該執行cmd2
順便說一句,我已經有一個用於切換到上述目錄的別名,那麼是否可以將
go
別名分配附加到foo
別名?alias "foo=cd /path/to/foo"
在 OSX 上使用 bash(?)。
不完全確定您要問什麼,但別名只是擴展為別名中的內容。如果您有兩個別名,則可以附加不同的命令,甚至是別名。
alias "foo=cd /path/to/foo; go" alias "foo2=cd /path/to/foo2; go"
在任何其他情況下,您可以在您的
.bashrc
function go () { if [ "$PWD" == "/path/to/foo" ]; then cmd1 elif [ "$PWD" == "/path/to/go" ]; then cmd2 fi; }
如果您有更多選擇,您可以更好地使用案例結構。
我覺得您非常“面向目錄”,在這種情況下,這可能更適合您的心態。
(但老實說,我認為這完全是個壞主意,您希望命令是全域的。)
在
.bashrc
中,放入alias go="./.cmd"
(然後source ~/.bashrc
)。然後,在每個這樣的目錄中,放置一個名為
.cmd
, then的腳本,chmod +x .cmd
然後go
做你的事。