如何退出在脚本中打开的shell?

如何退出在脚本中打开的shell?

我正在编写脚本来自动安装和配置我的树莓派。我的问题是官方安装脚本哦我的zsh打开一个新的 shell - zsh。这样我的脚本实际上就结束了,我需要一个单独的脚本来进行进一步配置。我希望我的脚本在奥姆兹install.sh 已完成。

脚本:

. ./functions.sh
echo "\n###### install zsh ######\n"


log "apt-get install -qqy zsh"

read -p "Enter Your Name: "  username
log "chsh -s /bin/zsh $username"

# this install.sh opens zsh and blocks proceeding of script
su - $username -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# I want the script to continue here
echo "More commands"

笔记:

  • log在functions.sh中声明,将执行命令并输出执行的命令

答案1

如果在运行安装程序之前设置RUNZSH为 no,或者使用未连接到终端的标准输入运行它,则它不会运行 shell。就您而言,< /dev/null在命令末尾添加感觉是最简单的解决方案:

su - $username -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" < /dev/null'

相关内容