sudo를 사용하여 실행해야 하는 다음 스크립트가 있지만 첫 번째 명령(git 명령)은 "ubuntu" 사용자로 실행해야 합니다.
sudo -u ubuntu "git -C linux/build-repo pull"
sudo -u ubuntu "git -C android/build-repo pull"
uoa_image=$(sh linux/build-repo/make.sh | sed -n '1 p')
echo $uoa_image
그러나 sudo로 실행하면 처음 두 명령이 실패하고 make.sh 스크립트를 실행하면 루트가 아니라고 불평합니다.
첫 번째 줄에서는 오류가 발생합니다.
sudo: git -C linux/build-repo pull: command not found
sudo: git -C android/build-repo pull: command not found
답변1
오류 메시지는 따옴표로 인해 발생합니다.
sudo -u ubuntu git -C linux/build-repo pull
아니요
sudo -u ubuntu "git -C linux/build-repo pull"
답변2
한 가지 옵션:
전체 스크립트를 sudo-to-root로 실행하고 처음 두 줄을 변경합니다 su
.
su -c "git -C linux/build-repo pull" ubuntu
su -c "git -C android/build-repo pull" ubuntu
...
두 번째 옵션:
명령 을 찾을 수 있도록 루트의 PATH를 설정합니다 git
.