Windows에서 ghq look했을 때의 쉘을 CMD가 아니고 Bash로 하고 싶다

개요



Windows상에서 ghq를 사용하고 있을 때, ghq look 그러면 새롭게 cmd 가 일어나 옵니다.

평소 cmd로 사용하면 위화감은 없지만,
Git Bash나 Msys2 등 Bash를 사용하고 있는데 이것을 하면 힘들군요.

그래서 어떻게 든 ghq look에서 bash를 시작할 수 있는지 시도해 보았습니다.

ghq look의 움직임



리포지토리의 해당 부분을 확인하면 runtime.GOOS 결과, Windows라면
환경 변수 COMSPEC 로부터 터미널의 패스를 취득해 실행하는 처리가 되어 있었습니다.

ref : htps : // 기주 b. 이 m / 모멘 / ghq / b / b / bdfc 594 아바 1d514 ~ f8336 에 f3bd07422d0fc444 / 코만 ds. #L305-L314
if runtime.GOOS == "windows" {
    cmd := exec.Command(os.Getenv("COMSPEC"))
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    cmd.Dir = reposFound[0].FullPath
    err := cmd.Start()
    if err == nil {
        cmd.Wait()
        os.Exit(0)

시도해 보자.
$ echo $COMSPEC
C:\WINDOWS\system32\cmd.exe

$ echo $SHELL
/usr/bin/bash

과연, 확실히 CMD에의 패스가 들어가 있네요.
덧붙여서이 값, 시스템의 속성에서 환경 변수의 설정 화면에서도 확인할 수 있습니다.



왜냐하면 ghq 에 한해서 이 값을 지정한 후에 실행하면 좋을 것 같습니다.

해결 방법


.bashrc 를 편집하고 ghq 에 아래와 같은 별칭을 붙여 환경 변수를 괴롭히고 표준 터미널을
CMD 에서 $SHELL 에 저장되어 있는 것으로 변경한 후 실행하도록 합니다.

.bashrc
alias ghq='COMSPEC="$SHELL" ghq'

Msys2 등 $SHELL 가 디폴트로 들어오지 않는 환경은 사전에 변수를 세트 해 주세요.

좋은 웹페이지 즐겨찾기