当前位置:  开发笔记 > 编程语言 > 正文

Bash Shell Scripting:我错过了什么简单的逻辑

如何解决《BashShellScripting:我错过了什么简单的逻辑》经验,为你挑选了2个好方法。

这可能是一个过于笼统的问题,但是...我试图从shell脚本中移动目录而感到难过.我不是一个*nix高级用户,但我很乐意通过命令行完成大多数任务.我想调用一个可以将"我"移动到目录的脚本,而不仅仅是类似于以下内容的脚本过程:

prompt:> goto lit   

goto别名在哪里 - > goto='./goscript'
并且
goscript有一些简单的代码,例如:

cd /path to work dirs/lit/user dir  

(假设每个用户都有一个目录/点亮)

我通过设置我的个人别名来移动到所需的目录,运行脚本,然后返回到原始目录,我自己避免了这个问题.这个问题是由一个使用类似方法的同事带给我的,但是想让这个过程更通用,所以我们不需要创建我们需要的每个别名.我认为这将是一个容易解决的问题,但我很难过,因为我还没有太多的shell脚本编写经验......



1> Scott Wegner..:

甚至比使用别人描述的别名更好,查看CDPATH变量!它基本上等同于PATH功能,但适用于cd命令.

例如,如果我定义我的CDPATHas $CDPATH:${HOME}/subdir,并~/subdir包含另一个目录subsubdir,那么我可以简单地执行:

cd subsubdir

从任何目录,并按预期导航路径.

这里有一些更具体的细节:

http://www.caliban.org/bash/#bashtips

要设置CDPATH变量,请为您添加一行.bashrc,例如

export CDPATH=$CDPATH:${HOME}/subdir



2> Isak Savo..:

您可以创建一个名为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

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有