次の単純なbashスクリプトがあります。
#!/usr/bin/env bash
sudo ./some_other_script_01
sudo ./some_other_script_02
このスクリプトを実行するといつもいつものようにパスワードプロンプトを確認してください。
[sudo] password for user:
しかし、時には説明できないほど./some_other_script_01
パスワードを入力する前に実行が開始されます(おそらくroot権限がないようです)。こんなことが起きてもした(まだ提供されていない)パスワードを入力するように求められます。
この現象が発生した場合は、スクリプトを終了して再起動する必要があります(root権限で実行するように)。
答え1
Sudoは一度だけで十分です。 sudoで始めてくださいwrapper.sh
。スクリプトにroot権限があることを確認してください。 sudo の呼び出しはもう必要ありません。
sudo ./wrapper.sh
ラッパー.sh:
#!/usr/bin/env bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
./some_other_script_01
./some_other_script_02