Swan-Cygwin에서 이 오류가 발생하는 이유는 무엇입니까?

Swan-Cygwin에서 이 오류가 발생하는 이유는 무엇입니까?

나는 사용하고있다백조내 Windows 컴퓨터에서 Linux를 지원합니다.

"Swan Terminal"(Xfce4/bash)을 여는 데 작은 문제가 있습니다.

시작 시 다음 오류가 발생합니다.

-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

내 계정 이름("Michael Wilcox") 사이의 공백 때문일 수 있다고 생각하는 이유가 있습니다.

Swan의 내 홈 폴더에 대한 현재 경로:

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

백조 설치:

C:\ProgramData\Swan

이 문제를 해결하는 방법을 아는 사람이 있나요?

고쳐 쓰다: 자세히 살펴보면 .xsessions-errors의 내용은 다음과 같습니다.

/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 - 공통:https://ghostbin.com/paste/7bn7x
Xfce4를 시작합니다:https://ghostbin.com/paste/zfxoe
/etc/xdg/xfce4/xinitrc:https://ghostbin.com/paste/uw4tq
.bashrc:https://ghostbin.com/paste/4ojjj

답변1

짐작할 수 있듯이 새 셸이 열릴 때마다 실행되는 스크립트 중 하나가 $HOME에 공백이 포함된 쿼리를 수행하는 것 같은데 이는 좋지 않습니다.

xinitrc-common - 다음 줄을 포함합니다:

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

startxfce4 - 다음 줄을 포함합니다:

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

/etc/xdg/xfce4/xinitrc - 다음 줄을 포함합니다:

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

이러한 위치의 $HOME 관련 매개변수는 공백이 포함된 경로로 인용해야 합니다.

이러한 매개변수를 인용해야 합니다.

예를 들어 $HOME다음과 같이 변경합니다."$HOME"

""를 사용하면 쉘이 "C:\Users\Michael Wilcox\"가 문자열임을 인식하게 됩니다.

답변2

xinitrc-common큰따옴표 없이 확장 $HOME하세요.

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

또는 바로 다음 줄이 있지만 그래야 합니다.

마찬가지로, ,files startxfce4에 대한 인용되지 않은 참조를 포함하십시오 .$HOMExinitrc

$HOME변수 확장(및 값이 에서 오는 모든 변수의 확장 ) $HOME주위에 큰따옴표를 사용 하도록 수정해야 합니다 .

이상적으로는 버그에 해당하는 이러한 사항을 해당 소프트웨어의 업스트림 관리자에게 보고해야 합니다.

관련 정보