我有下面的脚本,它应该使用 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 脚本会抱怨它没有 root
第一行给出了错误:
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
...
第二个选择:
设置 root 的 PATH 以便它可以找到该git
命令。