这可能是一个过于笼统的问题,但是...我试图从shell脚本中移动目录而感到难过.我不是一个*nix高级用户,但我很乐意通过命令行完成大多数任务.我想调用一个可以将"我"移动到目录的脚本,而不仅仅是类似于以下内容的脚本过程:
prompt:> goto lit
goto
别名在哪里 - > goto='./goscript'
并且
goscript
有一些简单的代码,例如:
cd /path to work dirs/lit/user dir
(假设每个用户都有一个目录/点亮)
我通过设置我的个人别名来移动到所需的目录,运行脚本,然后返回到原始目录,我自己避免了这个问题.这个问题是由一个使用类似方法的同事带给我的,但是想让这个过程更通用,所以我们不需要创建我们需要的每个别名.我认为这将是一个容易解决的问题,但我很难过,因为我还没有太多的shell脚本编写经验......
甚至比使用别人描述的别名更好,查看CDPATH
变量!它基本上等同于PATH
功能,但适用于cd命令.
例如,如果我定义我的CDPATH
as $CDPATH:${HOME}/subdir
,并~/subdir
包含另一个目录subsubdir
,那么我可以简单地执行:
cd subsubdir
从任何目录,并按预期导航路径.
这里有一些更具体的细节:
http://www.caliban.org/bash/#bashtips
要设置CDPATH
变量,请为您添加一行.bashrc
,例如
export CDPATH=$CDPATH:${HOME}/subdir
您可以创建一个名为goto(或其他)的函数,并确保它在.bashrc中定义(或者您可以从当前shell"获取"它):
function goto { # the "$USER" part will expand to the current username # the "$1" will expand to the first argument to the function ("goto xyz" => $1 is "xyz") cd /some-path/lit/$USER/$1 }
把它放在〜/ .bashrc或单独的文件中,然后从你的提示中调用"source the-file",然后就像任何其他程序一样调用该函数:
prompt> goto folder cd /some-path/lit/your-user/folder