명령줄에서 실행할 수 있는 파일을 만들려고 합니다.
.bashrc
export gorepo="cd /home/pol/dcu/practicum/gitrep"
그리고
alias gorepo="/home/pol/dcu/practicum/gitrep"
그런 다음 $PATH의 실행 파일에서
#!/bin/bash
gorepo # gorepo is defined in .bashrc
git checkout
내보내기, 별칭 지정, 쉘 변수 및 bash 함수 사용 등 다양한 조합을 시도했지만 소용이 없었습니다. 도저히 할 수 없습니다!
내 저장소에 간단히 CD를 넣은 다음 git checkout을 실행하고 저장소 디렉터리의 셸로 돌아가는 명령을 어떻게 만들 수 있나요?
답변1
gorepo
이는 리터럴 텍스트를 포함하는 변수를 선언합니다 cd /home/pol/dcu/practicum/gitrep
.
export gorepo="cd /home/pol/dcu/practicum/gitrep"
gorepo
이는 프로그램을 실행하기 위한 명령(별명)을 선언합니다 /home/pol/dcu/practicum/gitrep
.
alias gorepo="/home/pol/dcu/practicum/gitrep"
이는 쉘 스크립트 컨텍스트에 정의되지 않은 별칭을 사용하려고 시도합니다.
#!/bin/bash gorepo # gorepo is defined in .bashrc git checkout
내 생각에 당신이 원하는 것은 디렉토리를 변경하는 이 프로그램인 것 같습니다.스크립트 실행 중코드를 확인하세요.
#!/bin/bash
cd /home/pol/dcu/practicum/gitrep
git checkout
.bashrc
또는 현재 쉘 컨텍스트에서 디렉토리를 변경하고 코드를 확인하는 별칭(for ):
alias gorepo='cd /home/pol/dcu/practicum/gitrep && git checkout'
답변2
정의 cd
: 현재 쉘의 작업 디렉토리를 변경합니다. 스크립트를 시작하면 해당 스크립트를 실행하기 위해 또 다른 쉘(프로세스)이 시작됩니다.저것셸 프로세스는 를 실행하는 동안 작업 디렉터리를 성공적으로 변경했지만 cd
스크립트가 끝나면 스크립트를 시작한 이전 셸로 돌아갑니다.
이 문제에 대한 해결책은 다음과 같습니다.
1) 다음 방법 중 하나를 사용하여 "구매"를 통해 스크립트를 실행합니다.
bash$ source yourscript
또는 (정확히 동일):
bash$ . yourscript
그러면 현재 셸에서 스크립트가 실행되어 cd
프로세스의 디렉터리가 변경되어 스크립트가 끝날 때까지 유지됩니다.
2) 별칭을 정의합니다. Alias 명령은 현재 쉘 프로세스 내에서도 실행됩니다. 이를 수행하는 방법에 대한 roaima의 답변을 참조하십시오.
답변3
이것이 당신이 정말로 원하는 것인지, 아니면 이것이 당신이 하려는 일에 대한 최선의 해결책이라고 생각하는지 모르겠습니다.
자식은-C <repopath> <command> <branch>
관광의 경우
git -C /home/pol/dcu/practicum/gitrep checkout master`
이렇게 하면 원하는 디렉토리로 돌아갈 수는 없지만 도움이 될 수 있습니다.