Sco*_*ott 6 bash alias cd-command
我正在尝试创建一个方便的别名来更改目录,然后在该目录中启动节点服务器。我大部分时间都在工作,只有一个小问题我无法弄清楚。
当我将别名设置为仅更改目录(在我的~/.bashrc文件中)时,我得到了预期的行为:
alias ta='cd /Users/scotty/Develop/Meteor/task-assist'
Run Code Online (Sandbox Code Playgroud)
我所说的预期行为是,当我$ ta在终端中运行时,它不仅会更改目录,而且我还可以在终端中打开新选项卡,并且该目录会转移到新选项卡。
但是由于某种原因,当我在该别名上添加一个额外的命令来启动一个节点服务器时,$ ta再次运行后,当前目录不会转移到新的终端选项卡(新选项卡只是在 root 下打开)。目录更改并且服务器启动,但就像更改的目录实际上并未在终端中设置一样。当我杀死服务器时ctrl +c,只有在终端中更新目录。我已经尝试了别名和函数来让它工作,但没有成功:
### meteor is the command that starts the server
alias ta='cd /Users/scotty/Develop/Meteor/task-assist && meteor'
### Also tried a function
ta(){
cd /Users/scotty/Develop/Meteor/task-assist
meteor
}
Run Code Online (Sandbox Code Playgroud)
几乎就像更改目录和运行meteor 需要两个单独的命令一样,以便使用当前工作目录打开新的终端选项卡。只是重申并进一步澄清,当我在终端中运行$ta然后按cmd + t打开一个新选项卡时,我希望新选项卡的当前目录为:/Users/scotty/Develop/Meteor/task-assist。
关于如何使用别名实现这一点的任何想法?
我刚刚创建了这些别名(我正在使用 bash)
christian@fujiu1404:~$ alias ta='cd tmp ; date'
christian@fujiu1404:~$ ta
Wed Sep 17 14:47:16 BST 2014
christian@fujiu1404:~/tmp$ alias ta='cd tmp && date'
christian@fujiu1404:~/tmp$ cd ..
christian@fujiu1404:~$ ta
Wed Sep 17 14:48:28 BST 2014
christian@fujiu1404:~/tmp$
Run Code Online (Sandbox Code Playgroud)
他们工作了!