错误-bash: .: /usr/bin/[: 无法在 cygwin 上执行二进制文件

Error -bash: .: /usr/bin/[: cannot execute binary file on cygwin

我正在执行一个脚本,通过 cygwin 提示从我的虚拟系统上的某个本地存储库克隆代码:

 mkdir CPM_WORKAREA
 touch ~/.ssh/config
 {
   echo "Host gerrit.epk.ericsson.se" 
   echo "   HostkeyAlgorithms ssh-dss" 
   echo " Hostname 136.225.198.208" 
   echo User $signumid
   echo "PubKeyAuthentication yes" 
   echo "IdentityFile ~/.ssh/id_rsa"
 } > ~/.ssh/config

 cd ~/CPM_WORKAREA
 git clone ssh://gerrit.epk.ericsson.se:29418/tools/devenv devenv.x
 git config --global user.email 
 mkdir -p /proj/env
 ln -s /usr/bin /proj/env/bin
 cd
 if ! grep -q 'alias vi=vim' .bashrc  ; then
 {
   echo "alias vi=vim" >> .bashrc 
   echo 'export USER='$signumid'' >> .bashrc
   echo 'export         DEVENVHOME=${DEVENVHOME:-/home/'$signumid'/CPM_WORKAREA/devenv.x}' >> .bashrc
   echo '. $DEVENVHOME/sourceme.sh' >> .bashrc 
   }
 else
   {
   sed -i "s/.*USER.*/export USER=$signumid/
        s% .*DEVENVHOME=[$].*%             DEVENVHOME=${DEVENVHOME:-/home/$signumid/CPM_WORKAREA/devenv.x}%" .bashrc
   }
 fi

  if ! grep -q 'EDITOR=vim' .bash_profile  ; then
  {
    echo "EDITOR=vim" >> .bash_profile
    echo "export EDITOR" >> .bash_profile
    echo '. [ -r $HOME/.bashrc ] && . $HOME/.bashrc' >> .bash_profile
  }
  fi

  touch .vimrc
  {
  echo "set nocp" 
  echo "syntax on"
  } > .vimrc

执行此脚本后,当我关闭 cygwin 提示符然后再次打开它时,它显示:

   -bash: .: /usr/bin/[: cannot execute binary file

在 cygwin 提示符的顶部。

我看到一些评论说错误是由于在错误的架构上执行脚本造成的。

因此,我尝试检查 .bashrc 文件以检查执行脚本后 .bashrc 文件中发生了哪些更改。但我无法弄清楚所做的更改是如何导致此错误的。

问题出在这一行:

echo '. [ -r $HOME/.bashrc ] && . $HOME/.bashrc' >> .bash_profile

这会创建一个想要 "source the [ command" 的配置文件(这不是 shell 脚本,而是二进制文件)。看起来 . [ 中的 . 不应该存在。