Skip to content

ubuntu使用sh跳转到经常使用目录

ericwen edited this page Apr 20, 2019 · 2 revisions

还是用我git仓库的例子: 我的目录在 ~/git/repos/ros 如果我每次都在终端用cd进入,岂不麻烦,所以借助脚本解决。 如果脚本(togit.sh)是这样的:

#!/bin/sh
cd ~/git/repos/ros

然后在终端执行 chmod +x togit.sh (这个命令执行一次即可,赋予sh脚本执行权限) 然后执行 ./togit.sh ,发现还在当前目录,并没有跳转到指定目录,这是因为shell在执行脚本时,会创建一个子shell,子shell继承父shell的环境变量但是并不会改变父shell的环境变量,所以父shell(当前shell)并不会跳转目录。 要想生效,只需要在终端执行 source ./togit.sh,source命令会指定在当前的shell环境下执行脚本,不会创建子shell,但是每次都加source也很麻烦,所以我们用下面的命令代替 . ./togit.sh (注意两点之间有个空格)

如果觉着每次输两个点和一个空格也麻烦,那么还有一个神器:zsh的历史记录功能,这个以后再更。 参考:https://blog.csdn.net/p656456564545/article/details/80663359