【问题标题】:Bash script exits early after installing oh my zsh安装 oh my zsh 后 Bash 脚本提前退出
【发布时间】:2021-09-27 03:19:28
【问题描述】:

我正在尝试使用 bash 脚本安装我的 zsh 和其他一些命令。

但是,在安装了 oh my zsh 之后,bash 脚本退出而不运行脚本的其余部分。

Bash 脚本 sn-p:

echo Installing Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo Installing zeit theme
curl https://raw.githubusercontent.com/vercel/zsh-theme/master/vercel.zsh-theme -Lo ~/.oh-my-zsh/custom/themes/vercel.zsh-theme
echo Installing Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.zshrc
nvm install node
nvm use node
npm install -g yarn

有没有办法让我在安装完成时阻止 oh my zsh install 脚本退出。

谢谢!

【问题讨论】:

  • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 应该做什么?在安全方面,这看起来是一个非常个坏主意。
  • 安装节点版本管理器,但是脚本没有到达那部分
  • 运行它时究竟发生了什么?你得到什么输出和错误?此外,您似乎正在尝试从 bash 中的 zsh 脚本 (~/.zshrc) 执行命令,这可能不会很好地工作。
  • 也许以bash -x script 运行脚本并发布输出。
  • bash 脚本不应获取zsh 配置文件。

标签: bash oh-my-zsh


【解决方案1】:

Oh My Zsh 提供“无人值守安装”选项:https://github.com/ohmyzsh/ohmyzsh#unattended-install

根据文档:

如果您将 Oh My Zsh 安装脚本作为自动安装的一部分运行,则可以将标志 --unattended 传递给 install.sh 脚本。这将具有不尝试更改默认 shell 的效果,并且在安装完成后也不会运行 zsh。

就我而言,使用的脚本有一个小错误。

必填:

bash -c "... curl command ..." "" --unattended

那里有什么:

bash -c "... curl command ..." --unattended

请注意我的命令中--unattended 标志之前缺少的""

添加后,Oh My Zsh 安装不会导致 bash 脚本提前退出。

【讨论】:

  • 顺便说一句,就个人而言,我会用bash 代替""。这会导致更好的错误消息,因为 $0 用于来自 shell 的消息的前面。 (bash: whatever error here 而不仅仅是: whatever error here
猜你喜欢
  • 2015-12-23
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
相关资源
最近更新 更多