You know the problem you want to solve. That's the first step. And you also know what success looks like to you; that's the second. What's missing is how to think about the route between what you want and what you've got.
Since you're learning, I'll suggest what I think might be the optimal way to do it, and it's up to you to write the code.
For each backup program you want to be able to run, write a bash function that runs the commands to:
- Determine if the program is installed;
- Install it if it isn't;
- Determine if the program is configured as you want it to be;
- Configure it if it isn't; and
- Return an exit code letting you how things went.
Then you might show the user a list of programs (a menu) and have them choose one. This will call the appropriate function.
After that, either the desired program installed and configured or it's not, and you know which one is the case. If it failed, you want to quit so you can investigate; if it succeeded, you'll run the program. Please grab the exit code from this as well.
As far as the rest, the "execute commands or do nothing", it's simple enough to set up one or more "yes/no" prompts, taking the backup program's exit code into consideration.
(Now, if it were I, I'd write a separate script for each program. But I prefer simplicity and I don't mind maintaining two or three simple scripts instead of one more complicated one.)