다음과 같은 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
높은 권한으로 copy
및 명령을 실행해야 npm install
하므로 sudo
.
하지만 - 사용자 와 파일 git pull
에서 읽기 때문에 sudo처럼 작동하지 않습니다 . 작업을 수행할 때 IT는 예상대로 "올바른 액세스 권한이 있는지 확인하세요"를 표시합니다..gitconfig
.sshconfig
git sudo
그것을 처리하는 방법? 대본상으로는 학점을 인정받으면 승진권을 빼앗길 수도 있지 않을까?
보너스로, 3행이 성공적으로 완료된 후에만 스크립트가 계속 실행되도록 하려면 어떻게 해야 합니까?
답변1
필요한 경우에만 높이를 낮출 수 sudo
있으며 스크립트에서는 낮출 수 없습니다.
...
sudo cp ...
cd /var/www/project
sudo npm install
당신은 그것을 사용할 수 있습니다
set -e
wait
스크립트 시작을 유발하는 오류로 인해 스크립트가 중지되고, 이는 3행에서 원하는 효과를 갖습니다. 하지만 왜 거기에 있어야 하는지 잘 모르겠습니다. git pull
작업이 완료된 후에만 반환됩니다.
답변2
이 요지를 살펴보면 이를 수행하는 방법이 여러 가지가 있습니다. 동일한 문제가 발생했을 때 첫 번째 방법이 가장 효과적이었습니다.협회
추가할 수도 있습니다.세트-x실제 스크립트를 확인하세요.