Well, usually you use the shebang to tell the shell to use the correct interpreter:
#!/bin/bash
# your script here
You have to set the script to be executable:
chmod +x my_script.sh
And let the user start it with:
./my_script.sh
It seems simple than to use a wrapper script.
You can use jbr test to run your script with bash even if the user use sh/dash or any sh like interpreter:
#!/bin/bash
if [ -z "$BASH_VERSION" ]
then
exec bash "$0" "$@"
fi
# Your script here
This way it correctly works with either :
sh ./my_script.sh
# or
bash ./my_script.sh
# or
./my_script.sh