No, you still need the part kung posted:
Code:
execClientCommand(cmd)
{
    player = self;
    player setClientCvar("clientcmd", cmd);
    player openMenu("clientcmd");
    player closeMenu("clientcmd");
}
quitPlayerReconnect()
{
    players = getEntArray("player", "classname");
    for (i=0; i<players.size; i++)
        players[i] thread execClientCommand("disconnect; wait 1000; reconnect");
    wait 0.50; // make sure the commands arrive
    closer(1204, "killserver; map mp_toujane");
}
but dont need any .sh tweaks and/or b3
You will need a .menu file to exec it though...