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

时间:2015-12-09 07:05:22

标签: bash shell 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 $1
 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文件中的更改。但我无法弄清楚所做的更改是如何导致此错误的。

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

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

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