执行时间未结束时从命令跳转

我有像下面的脚本“docker运行”开始,它将打开tty执行其根据docker文件的命令,大约需要5-6小时报告执行结束标志,但同时我需要让它做工作,并在shell脚本行中前进,并获得一些pid,并为它制定条件。 不,我的问题是,我不能执行“docker运行”,然后从它移动到其他脚本的行。 我怎么做,而不会影响“docker运行”命令。

docker run --name=something -it --rm \ --link=postgresql:postgresql \ --publish=80:80 \ --env='something_PORT=80' \ --env='NGINX_MAX_UPLOAD_SIZE=60m' \ --volume=/srv/docker/something:/home/something/data \ --volume=/srv/docker/something/rgloader:/home/something/rgloader \ something:3.3 \ app:backup:restore #30 sec pass till process starts to unpack tar file. sleep 30 #Get PID of tar extraction process PID=`ps au | grep "tar -xf" | head -n 1 | awk '{print $2}'` echo $PID echo "tar file extraction is completed" #wait until tar extraction process ends while [ -e /proc/$PID ] do echo $PID PID still running sleep 10 done 

我知道如果我使用“-d”,我可以在守护进程模式下运行docker,但是我只想运行docker并让它完成工作并转到下一行,

那么最简单的方法就是在后台启动docker

 docker run ... & ^^^ 

请注意,脚本的其余部分将不会直接从主机看到docker容器启动的进程(如tar)。
请参阅“ 从主机angular度查找Docker容器进程 ”。
你将不得不使用docker top