我分叉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;
答案 0 :(得分:0)
您的shell似乎在==
命令中遇到[
问题。
问题是,这个操作员没有记录这个旧命令,所以有些炮弹可能不喜欢它。
该命令应该在现代Bash中工作,例如,如果您以这种方式运行脚本:
bash bootstrap.sh
或者这样:
./bootstrap.sh
理想情况下,脚本不应使用模糊语法,例如使用此语法:
if [[ $1 == --force || $1 == -f ]]; then