Ubuntu – How to completely restart script from inside the script itself

command linerestartscripts

I'm setting up a shell script with menues and sub menues, options, etc. But on each menu/submenu/etc, i need a "Go back to main menu" choice.

I've already got the menu set up and it works fine, but i need a way to simply restart the script from scratch, reset all variables etc etc.

Or a way to exit the current script and starting it again.

I've tried to do this:

ScriptLoc=$(readlink -f "$0")
./ScriptLoc

But that starts the "new" script inside the "old" script, so when i exit the "new" script, it goes back to the "old" script (if that makes any sense). It's a script inside a script kind of thing.

Anyone got an idea how to restart it completely?

Best Answer

Yes, do

exec "$ScriptLoc"

The exec bash builtin command replaces the current program with a new one.

Related Question