用于设置mac的Bash脚本不断跳过命令,或者在不执行行的情况下直接打印到控制台



我一直在尝试创建一个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

相关内容

最新更新