Bash 스크립트의 현재 코드 작업공간 이름을 얻는 방법이 있습니까?

Bash 스크립트의 현재 코드 작업공간 이름을 얻는 방법이 있습니까?

Linux 환경에서는 디렉토리 아래에 git 저장소를 만듭니다. /myspace/darshan/repositories

그래서 제가 작업할 각 기능이나 버그에 대해 별도의 git 저장소가 있을 것입니다.

다음과 같은 다른 저장소에서 동일한 몇 가지 공통 작업이 있습니다.

building an image

copy an image

going to my component directory

저장소 이름의 루트를 제외하면 모두 동일한 경로에 있습니다. 즉, 빌드 이미지가 -에 위치한다고 가정합니다. /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-toplevelGit 저장소 외부에서 실행하면 0이 아닌 종료 코드로 종료되므로 사용할 수 있습니다.

관련 정보