これがルールに違反しているかどうかはわかりませんが、
sudo bash script.sh
私にはうまくいくようです。
あなたがやろうとしていることは不可能です。現在のシェルは通常のユーザー ID で実行されています (つまり、root なしで sudo にアクセスします) )、root アクセスを許可する方法はありません .何 sudo ルートとして実行される新しい*サブ*プロセスを作成します。サブプロセスは単なる通常のプログラム (例:sudo cp ... cp を実行します ルート プロセス内のプログラム) またはルート サブシェルである可能性がありますが、できません 現在のシェルになります。
(sudo コマンド自体は、現在のシェルのサブプロセスとして実行されます。つまり、「現在のシェル」で何かを実行するには、ある意味では既に遅すぎるということです。なぜなら、それが実行される場所ではないからです。)