我希望能够在我的节点子进程中运行以下2条bash命令
pushd ${directory} && git stash
然后根据输出结果;
git pull origin master
或
git pull origin master && git stash pop
然后最后
npm install --prefix ${directory} && popd
问题是,exec
为每个命令创建了一个新进程,因此要执行的下一个命令对上一个命令一无所知。例如,运行popd
会引发错误,因为pushd
是在另一个进程中运行的,并且不知道在先前的命令中存放了哪个目录。
我目前正在尝试无济于事:
const parentProc = await execSync(`pushd ${directory} && git stash`)
if(parentProc.toString().includes("No local changes to save")){
await execSync("git pull origin master")
}else{
await execSync("git pull origin master && git stash pop")
}
await execSync(`npm install --prefix ${directory} && popd`)
如何在同一过程中运行所有这些命令?