如果在我的自动化脚本中,我需要执行类似安装 oh-my-zsh 之类的操作,我将有一个如下的 .sh 脚本:
#!/bin/sh
runuser -l user -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"'
这有效,并将按我预期的那样安装 oh-my-zsh,但它随后将会话置于 zsh shell 中。如果我将命令添加exit
到脚本末尾,它什么也不做。
我怎样才能在脚本中禁止切换到 zsh(或任何其他 shell)或退出?
答案1
如果你实际看一下这个脚本,你会看到,它做的最后一件事是调用:
exec zsh -l
在此之前,你会看到它检查RUNZSH
变量是否设置为no
。如果是这样,那么它将直接退出而不进入 shell。
因此您需要做的就是将环境变量传递RUNZSH=no
给命令。
脚本顶部的注释包含您可以设置的其他变量和可以使用的命令行选项。