Estou tentando entrar no subsistema bash do Windows para Linux quando recebo este erro:
-bash: /home/User1/.profile: line 28: syntax error near unexpected token `('
Antes de receber esse erro, eu estava tentando colocar permanentemente um diretório no meu caminho usando a export PATH:$PATH
função.
meu arquivo /.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
Responder1
Primeiro, você precisa citar os caminhos do diretório que incluem espaços em branco e caracteres especiais, ou escapar de cada um desses caracteres com uma barra invertida -referência.
Segundo, a maneira canônica de alterar o PATH é:
export PATH=/some/new/path:$PATH
Assim, você está adicionando um novo caminho na frente do valor existente de PATH
, caso contrário, não será capaz de executar com fluência alguns comandos localizados no caminho padrão.
Terceiro, no WSL, por padrão, as unidades do Windows C:
e D:
assim por diante são montadas em /mnt
- ou seja /mnt/c
, /mnt/d
, etc.
export PATH='/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_':$PATH
Quarto, não deve haver arquivo disponível /.profile
, ele deve estar localizado no diretório inicial do usuário ~/.profile
( $HOME/.profile
). Além disso, seu .profile
arquivo parece incompleto. Aqui está a aparência do arquivo padrão:WSL.profile
. No arquivo de perfil postado na pergunta, o .bashrc
arquivo não é originado.
Responder2
Quando a instância do Linux é configurada, a variável PATH da máquina host é clonada no arquivo .bashrc da máquina Linux (com conversões feitas nos caminhos para fazê-los funcionar dentro do WSL).
fonte: https://lifesaver.codes/answer/problems-with-windows-path-variable-getting-imported-1890
Quando a variável PATH contém espaços, você recebe esse erro, provavelmente colocar todo o valor de PATH entre aspas irá corrigi-lo. você também pode remover os caminhos ofensivos se não precisar deles.
Se você precisar de uma solução mais permanente, ou seja, "consertar uma vez por máquina host" em vez de "uma vez por criação de máquina convidada", tente seguir este caminho:
https://github.com/microsoft/WSL/issues/1640#issuecomment-276408942