Non sono sicuro che questo infranga qualche regola, ma
sudo bash script.sh
Sembra funzionare per me.
Quello che stai cercando di fare è impossibile; la tua attuale shell è in esecuzione con il tuo normale ID utente (cioè senza root l'accesso sudo
ti darebbe) e non c'è modo di concedergli l'accesso come root . Cosa sudo
fa è creare un nuovo *sub*processo che viene eseguito come root. Il sottoprocesso potrebbe essere solo un normale programma (ad esempio sudo cp ...
esegue cp
programma in un processo root) o potrebbe essere una subshell root, ma non può essere la shell corrente.
(In realtà è ancora più impossibile di così, perché il file sudo
il comando stesso viene eseguito come un sottoprocesso della shell corrente, il che significa che in un certo senso è già troppo tardi per fare qualcosa nella "shell corrente", perché non è lì che viene eseguito.)