Bash 하위 시스템(WSL)에 로그인할 때 구문 오류가 발생했습니다.

Bash 하위 시스템(WSL)에 로그인할 때 구문 오류가 발생했습니다.

다음 오류가 발생하면 Linux용 bash Windows 하위 시스템에 로그인하려고 합니다.

-bash: /home/User1/.profile: line 28: syntax error near unexpected token `('

이 오류가 발생하기 전에는 함수를 사용하여 내 경로에 디렉터리를 영구적으로 넣으려고 했습니다 export PATH:$PATH.

내 /.profile 파일

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi
export PATH=/home/user1/.local/bin:/home/janeen/bin:/home/janeen/miniconda3/bin:/home/User1/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/c/ProgramData/DockerDesktop/version-bin:/c/Program Files/Docker/Docker/resources/bin:/c/Program Files (x86)/Common Files/Oracle/Java/javapath_target_34052312:/c/Windows/System32:/c/Windows:/c/Windows/System32/wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Strawberry/c/bin:/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/Users/User1/AppData/Local/Programs/Python/Python36:/c/Users/Janeen/AppData/Local/Programs/Python/Python36/Scripts:/c/Users/User1/AppData/Local/Programs/Python/Python37-32/Scripts:/c/Users/Janeen/AppData/Local/Programs/Python/Python37-32:/c/Users/User1/AppData/Local/Microsoft/WindowsApps:/e/Program Files (x86)/TBtools/bin:/snap/bin:/software/samtools

답변1

먼저 공백과 특수 문자가 포함된 디렉터리 경로를 인용하거나 백슬래시로 이러한 각 문자를 이스케이프 처리해야 합니다.참조.

둘째, PATH를 변경하는 정식 방법은 다음과 같습니다.

export PATH=/some/new/path:$PATH

따라서 기존 값 앞에 몇 가지 새 경로를 추가하게 됩니다 PATH. 그렇지 않으면 기본 경로에 있는 몇 가지 명령을 원활하게 실행할 수 없습니다.

세 번째로 WSL 내에서는 기본적으로 Windows 드라이브 등이 C:- 즉 , D:등 아래에 마운트됩니다. 예는 다음과 같습니다./mnt/mnt/c/mnt/d

export PATH='/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_':$PATH

넷째, 사용 가능한 파일이 있어서는 안 되며 , 사용자 홈 디렉터리 ( ) /.profile에 있어야 합니다 . 또한 파일이 불완전해 보입니다. 기본 파일은 다음과 같습니다.~/.profile$HOME/.profile.profileWSL.profile. 질문 내에 게시된 프로필 파일에서는 해당 .bashrc파일이 출처가 아닙니다.

답변2

Linux 인스턴스가 설정되면 호스트 시스템 PATH 변수가 Linux 시스템 .bashrc 파일에 복제됩니다(WSL 내부에서 작동하도록 경로로 변환됨).

원천: https://lifesaver.codes/answer/problems-with-windows-path-variable-getting-imported-1890

PATH 변수에 공백이 포함되어 있으면 이 오류가 발생합니다. PATH의 전체 값을 따옴표로 묶으면 문제가 해결될 가능성이 높습니다. 필요하지 않은 경우 문제가 되는 경로를 제거할 수도 있습니다.

"게스트 컴퓨터 생성당 한 번" 대신 "호스트 컴퓨터당 한 번 수정"을 의미하는 보다 영구적인 솔루션이 필요한 경우 다음 경로로 이동해 보세요.

https://github.com/microsoft/WSL/issues/1640#issuecomment-276408942

관련 정보