You should look into quoting the parameters you pass to the script:
For example:
Exhibit A:
script.sh -a one string here -b another string here
Exhibit B:
script.sh -a "one string here" -b "another string here"
and script.sh:
echo "$1:$2:$3:$4"
With exhibit A, the script will display: -a:one:string:here
With exhibit B, the script will display: -a:one string here:-b:another string here
I used the colon to separate things, to make it more obvious.
In Bash, if you quote the parameters you inhibit tokenization of the string, forcing your space separated string to be just one token, instead of many.
As a side note, you should quote each and every variable you use in Bash, just for the case where its value contains token separators (spaces, tabs, etc.), because "$var" and $var are two different things, especially if var="a string with spaces".
Why? Because at one point you'll probably want something like this:
script.sh -a "a string with -b in it" -b "another string, with -a in it"
And if you don't use quoted parameters, but rather attemp heuristics to find where the next parameter is, your code will brake when it hits the fake -a and -b tokens.