shell脚本错误:bootstrap.sh:13:=未找到

时间:2016-07-31 09:32:50

标签: shell dotfiles

我分叉https://github.com/mathiasbynens/dotfiles dotfiles并试图运行bootstrap.sh,显然应该“拉入最新版本并将文件复制到你的主文件夹”,根据README.md

但是当我尝试获取bootstrap.sh时,错误会返回。 “bootstrap.sh:13:=未找到”。第13行是

中的doIt部分

if [ "$1" == "--force" -o "$1" == "-f" ]; then doIt;

有人知道哪里出错了吗?提前谢谢。

#!/usr/bin/env bash

cd "$(dirname "${BASH_SOURCE}")";

git pull origin master;

function doIt() {
    rsync --exclude ".git/" --exclude ".DS_Store" --exclude ".osx" \
    --exclude "bootstrap.sh" --exclude "README.md" --exclude "LICENSE-MIT.txt" -avh --no-perms . ~;
    source ~/.bash_profile;
}

if [ "$1" == "--force" -o "$1" == "-f" ]; then
    doIt;
else
    read -p "This may overwrite existing files in your home directory. Are you sure? (y/n) " -n 1;
    echo "";
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        doIt;
    fi;
fi;
unset doIt;

1 个答案:

答案 0 :(得分:0)

您的shell似乎在==命令中遇到[问题。 问题是,这个操作员没有记录这个旧命令,所以有些炮弹可能不喜欢它。

该命令应该在现代Bash中工作,例如,如果您以这种方式运行脚本:

bash bootstrap.sh

或者这样:

./bootstrap.sh

理想情况下,脚本不应使用模糊语法,例如使用此语法:

if [[ $1 == --force || $1 == -f ]]; then