有没有办法获取 bash 脚本的当前代码工作区名称?

有没有办法获取 bash 脚本的当前代码工作区名称?

在linux环境中,我在目录下创建git存储库 - /myspace/darshan/repositories

因此,我将要处理的每个功能或错误都会有单独的 git 存储库。

我将有一些在不同存储库中相同的常见任务,例如 -

building an image

copy an image

going to my component directoryETC

除存储库名称的根目录外,所有这些都位于同一路径中。即,假设构建图像将位于以下位置 - /myspace/darshan/repositories/<feature>/bin/sys/

存储库之间唯一改变的是目录

我想为我上面提到的任务编写一些别名 -

build

cp_image

goto_comp

我希望所有这些别名都能正常工作,无论我在工作区中的深度如何,无论我在哪个工作区下。

我怎样才能创建这个设置?

答案1

一种可能的方法是使用git rev-parse --show-toplevel它将输出当前存储库的基目录。因此,从 git 存储库的任何子目录中,$(git rev-parse --show-toplevel)都将是该存储库的基目录,并且

cd $(git rev-parse --show-toplevel)/bin/sys

将始终带您到bin/sys当前存储库的子目录。

在 git 存储库之外使用它时要小心——你应该首先检查你是否确实在其中;git rev-parse --show-toplevel如果它在 git 存储库之外运行,将以非零退出代码退出,因此您可以使用它。

相关内容