我正在执行一个脚本,通过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
文件中的更改。但我无法弄清楚所做的更改是如何导致此错误的。
答案 0 :(得分:0)
问题在于这一行:
echo '. [ -r $HOME/.bashrc ] && . $HOME/.bashrc' >> .bash_profile
这会创建一个想要"来源[
命令的配置文件" (这不是shell脚本,而是二进制文件)。看起来.
中的. [
不应该存在。