Shell-Script

如何退出在腳本中打開的 shell?

  • July 6, 2019

我正在編寫腳本來自動化我的樹莓派的安裝和配置。我的問題是oh-my-zsh的官方安裝腳本打開了一個新的 shell - zsh。所以這實際上結束了我的腳本,我需要一個單獨的腳本來進一步配置。我希望我的腳本在omz 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"

筆記:

  • 日誌在functions.sh中聲明,將執行命令並輸出已執行的命令

如果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'

引用自:https://unix.stackexchange.com/questions/528662