Estoy intentando iniciar sesión en el subsistema bash de Windows para Linux cuando aparece este error:
-bash: /home/User1/.profile: line 28: syntax error near unexpected token `('
Antes de recibir este error, estaba intentando colocar permanentemente un directorio en mi ruta usando la export PATH:$PATH
función.
mi archivo /.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
Respuesta1
Primero, debe citar las rutas del directorio que incluyen espacios en blanco y caracteres especiales, o escapar de cada uno de estos caracteres mediante una barra invertida.referencia.
En segundo lugar, la forma canónica de cambiar la RUTA es:
export PATH=/some/new/path:$PATH
Por lo tanto, está agregando una ruta nueva delante del valor existente de PATH
; de lo contrario, no podrá ejecutar con fluidez un par de comandos que se encuentran en la ruta predeterminada.
En tercer lugar dentro de WSL, de forma predeterminada, las unidades de Windows C:
, D:
etc., están montadas en /mnt
, es decir /mnt/c
,, /mnt/d
etc. Aquí hay un ejemplo:
export PATH='/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_':$PATH
En cuarto lugar, no debería haber un archivo disponible /.profile
, debe estar ubicado en el directorio de inicio del usuario ~/.profile
( $HOME/.profile
). Además, su .profile
archivo parece incompleto, así es como se ve el predeterminado:WSL.profile
. En el archivo de perfil que se publica dentro de la pregunta, el .bashrc
archivo no tiene su origen.
Respuesta2
Cuando se configura la instancia de Linux, la variable PATH de la máquina host se clona en el archivo .bashrc de la máquina Linux (con conversiones realizadas en las rutas para que funcionen desde WSL).
fuente: https://lifesaver.codes/answer/problems-with-windows-path-variable-getting-imported-1890
Cuando la variable PATH contiene espacios, aparece este error, lo más probable es que encerrar el valor completo de PATH entre comillas lo solucione. También puedes eliminar los caminos ofensivos si no los necesitas.
Si necesita una solución más permanente, es decir, "arreglar una vez por máquina host" en lugar de "una vez por creación de máquina invitada", intente seguir este camino:
https://github.com/microsoft/WSL/issues/1640#issuecomment-276408942