我一直在尝试创建一个bash脚本,该脚本允许我将现有的开发设置转移到一个全新的macbook上。
我设置了一个bash脚本,该脚本本应自动完成这一过程,但由于某种原因,当我使用curl调用该脚本时,它似乎无法可靠地运行整个过程,我也不明白为什么会这样
如果我手动将每一行输入到终端并执行,事情会按预期进行,但这样做会违背脚本的目的。
我会附上一些终端输出的屏幕截图,这样你就可以看到我面临的确切问题,以及它在什么时候表现得很奇怪。
我不得不运行该脚本几次才能让它执行跳过的步骤,但最好能理解为什么会错过某些步骤。这是一个链接到我的要点包含脚本。如果能为我所看到的行为提出任何改进或解释的建议,我将不胜感激。
我尝试过的事情没有解决我的问题:
- 将脚本拆分为两个较小的脚本
- 擦除我的mac并再次运行脚本(这样做了好几次(
- 在每个命令之间添加
sleep 5
edit:这就是我运行脚本的方式
sudo curl -Lks https://gist.githubusercontent.com/curtis-j-campbell/b695513a44393c3a5084c011c6d0c890/raw | /bin/bash
提前感谢
似乎brew install git
之后的所有内容都在被响应。这表明该命令中的某些内容正在将其stdin复制到stdout,因此它正在处理脚本的其余部分。将该行更改为
brew install git </dev/null
因此它不会将脚本作为stdin读取。
此外,您不需要在sudo
下运行curl
。如果您需要安装程序的权限,则应该以超级用户身份运行bash
,而不是curl
。
curl -Lks https://gist.githubusercontent.com/curtis-j-campbell/b695513a44393c3a5084c011c6d0c890/raw | sudo /bin/bash