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で実行すると最初の2つのコマンドが失敗し、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
1つのオプション:
スクリプト全体をsudo-to-rootとして実行し、最初の2行を変更しますsu
。
su -c "git -C linux/build-repo pull" ubuntu
su -c "git -C android/build-repo pull" ubuntu
...
2番目のオプション:
コマンドが見つかるようにルートのPATHを設定しますgit
。