Por que estou recebendo este erro no Swan-Cygwin?

3

Estou usando o Swan para fornecer suporte ao Linux no meu computador Windows,

Estou tendo um pequeno problema ao abrir o "Swan Terminal" (Xfce4 / bash).

isso gera erros ao inicializar:

-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected
-bash: [: /home/Michael: binary operator expected

Eu tenho motivos para acreditar que isso pode ser causado devido ao fato de eu ter um espaço entre o nome da conta ("Michael Wilcox").

caminho atual para minha pasta pessoal no Swan:

C:\Users\Michael Wilcox\AppData\Roaming\Swan

instalação de cisne:

C:\ProgramData\Swan

Alguém sabe como consertar isso?

Atualizar : ao olhar mais de perto, .xsessions-errors lê:

/etc/X11/xinit/xinitrc-common: line 20: [: /home/Michael: binary operator expected
/usr/bin/startxfce4: line 111: [: /home/Michael: binary operator expected
/usr/bin/startxfce4: line 113: [: /home/Michael: binary operator expected
/etc/xdg/xfce4/xinitrc: line 67: test: /home/Michael: binary operator expected
/etc/xdg/xfce4/xinitrc: line 88: test: /home/Michael: binary operator expected

xinitrc-common: link
startxfce4: link
/ etc / xdg / xfce4 / xinitrc: link
.bashrc: link

    
por Michael Wilcox 06.04.2017 / 09:17

2 respostas

3

Como você suspeita, parece que um dos scripts em execução toda vez que você abre um novo shell executa uma consulta no seu $ HOME que contém espaços que não são bons.

xinitrc-common - contém a seguinte linha:

[ -r $HOME/.profile ] && . $HOME/.profile

startxfce4 - contém as seguintes linhas:

if test "x$XDG_CONFIG_HOME" = "x" 
then 
  BASEDIR="$HOME/.config/xfce4/" 
else 
  BASEDIR="$XDG_CONFIG_HOME/xfce4" fi

/ etc / xdg / xfce4 / xinitrc - contém as seguintes linhas:

if test "x$XDG_CONFIG_HOME" = "x" ; then 
  XDG_CONFIG_HOME=$HOME/.config 
fi 
[ -d "$XDG_CONFIG_HOME" ] || mkdir "$XDG_CONFIG_HOME"

Você deve citar os parâmetros relacionados a $ HOME nesses locais como seu caminho que contém espaço em branco.

Você deve citar esses parâmetros.

por exemplo. altere $HOME para ser: "$HOME"

usando "" fará com que o shell identifique que "C: \ Users \ Michael Wilcox \" é uma string

    
por 06.04.2017 / 09:24
1

O xinitrc-common não faz o dobro da expansão de $HOME na linha

[ -r $HOME/.profile ] && . $HOME/.profile

ou nas linhas imediatamente a seguir, mas deveria.

Da mesma forma, startxfce4 contém referências não citadas a $HOME , assim como o arquivo xinitrc .

Você terá que modificá-los para que eles usem aspas duplas em torno da expansão da variável $HOME (e a expansão de quaisquer variáveis cujos valores sejam derivados de $HOME ).

E, idealmente, se você tiver a capacidade de fazê-lo, essas coisas, que resultam em bugs, devem ser informadas aos responsáveis pela manutenção das partes relevantes do software.

    
por 06.04.2017 / 10:10