等待"git clone"在 bash 中完成



我有一个顺序脚本,其中有一个 git 克隆。 我想确保在执行下一步之前完成实际的 git 过程。我试过了

git clone https://github.example.com/Sample/Example.git & export PID=${!} | while [[ ( -d /proc/$PID ) && ( -z `grep zombie /proc/$PID/status` ) ]]; do sleep 1; done

和其他各种方式,但无法设法等到实际的 git 克隆完成。 请问对此有任何提示吗?

这里的问题是您的通话中的&。这将强制在后台执行 git 命令。只需使用 ;&& 来分隔您的命令。

例如无论如何,这将呼应"克隆"。即使"git clone"失败。

git clone https://github.example.com/Sample/Example.git; echo "cloned"

或:

仅当克隆成功时,这才会回显"克隆"。

git clone https://github.example.com/Sample/Example.git && echo "cloned"

从您的描述中,我认为您将需要第二种选择。

&符号分叉 git 进程并将其置于后台。如果您希望在继续之前完成它,请将其替换为&&或换行符。

最新更新