使用 sudo 运行 bash 脚本,并在其中运行 git

使用 sudo 运行 bash 脚本,并在其中运行 git

我有这样一个 bash 脚本:

#!/bin/bash                                                              

cd /home/user/projekt
git config core.sparseCheckout true
git pull origin master
wait
rm -rf /var/www/project/{client,public}
cp -r /home/user/project-checkout/project/dist/* /var/www/project/
cd /var/www/project/
npm install

由于我必须以提升的权限运行copynpm install命令,因此我使用sudo.

但是 -git pull不能像 sudo 一样工作,因为它从用户.gitconfig.sshconfig文件中读取。在执行操作时,IT 会按预期显示“请确保您拥有正确的访问权限”git sudo

怎么解决?我在想,在剧本中,为了获得一项赞扬,可能会取消提升权利吗?

作为奖励,我如何告诉我的脚本仅在第 3 行成功完成后继续执行?

答案1

您只能sudo在必要时才可以降低高度,而不是降低高度;所以在你的脚本中:

...
sudo cp ...
cd /var/www/project
sudo npm install

您可以使用

set -e

wait在脚本开始时导致任何错误停止脚本,这将在第 3 行产生预期的效果。但我不确定为什么你需要那里;git pull只有在工作完成后才会返回。

答案2

看看这个要点,有多种方法可以做到这一点......当我遇到同样的问题时,第一个方法效果最好。关联

您还可以添加设置-x查看您的脚本的实际效果。

相关内容