Bash脚本来设置Docker失败,但个别命令的工作

我创build了一个bash脚本来为Docker准备一个Ubuntu机器并安装Docker。

但是,在运行脚本时,其中一个sudo apt-get update命令会使脚本在Reading package lists...挂起很长一段时间(可能会永远)。 它是在命令“apt-cache policy docker-engine”之后的那个。

通过这个唯一的方法是按回车 ,这将使得sudo apt-get update继续。

我主要关心的是,当我手动运行这些命令时,它们工作正常,我没有遇到这个问题。 我只在遇到这个问题时才在.sh脚本中运行。 以下是脚本:

 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee -a /etc/apt/sources.list.d/docker.list sudo apt-get update sudo apt-get purge lxc-docker apt-cache policy docker-engine sudo apt-get update echo `sudo apt-get install linux-image-extra-$(uname -r)` #Install docker sudo apt-get update sudo apt-get -y install docker-engine sudo service docker start sudo docker run hello-world 

我发布了关于sudo apt-get update的问题,以及为什么它挂在askubuntu上: https ://askubuntu.com/questions/796396/reading-package-lists-freezes-until-press-enter

但是,当我手动运行命令而不是在脚本中运行命令时,我得到了不同的结果,这让我认为这个问题也属于stackoverflow。 我的脚本有什么问题使得一个命令与另一个命令混淆?