![如何退出在脚本中打开的shell?](https://linux22.com/image/156675/%E5%A6%82%E4%BD%95%E9%80%80%E5%87%BA%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%89%93%E5%BC%80%E7%9A%84shell%EF%BC%9F.png)
我正在编写脚本来自动安装和配置我的树莓派。我的问题是官方安装脚本哦我的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'