Je ne sais pas si cela enfreint les règles, mais
sudo bash script.sh
semble fonctionner pour moi.
Ce que vous essayez de faire est impossible; votre shell actuel s'exécute sous votre ID utilisateur habituel (c'est-à-dire sans root l'accès sudo
vous donnerait), et il n'y a aucun moyen de lui accorder un accès root . Quoi sudo
fait est de créer un nouveau *sous*processus qui s'exécute en tant que root. Le sous-processus peut être juste un programme normal (par exemple sudo cp ...
exécute le cp
programme dans un processus racine) ou il pourrait s'agir d'un sous-shell racine, mais il ne peut pas être le shell actuel.
(C'est en fait encore plus impossible que ça, car le sudo
La commande elle-même est exécutée en tant que sous-processus du shell actuel - ce qui signifie qu'en un sens, il est déjà trop tard pour qu'il fasse quoi que ce soit dans le "shell actuel", car ce n'est pas là qu'il s'exécute.)