In addition to the other answer, you need to make sure you familiarize yourself with each of the ways the conditional can be properly written. There is no magic, just read the appropriate section of man bash. The [[ test is actually a Reserved Word in bash and is a bashism (it works in bash, but not in POSIX shell). It is the most flexible and forgiving test construct for bash and should be used if portability is not a concern. Make sure you understand the difference in quoting requirements, word splitting and pathname expansion, between the [[ test clause and the [ and test builtins.
In addition to [[, you can also make use of [ and test for testing. ([ and test are equivalent). The following are also correct and portable to POSIX shell:
if [ "$fN $lN" = "louis smith" ]
if test "$fN $lN" = "louis smith"
To answer your original question directly, you test for more than one condition by either using the -a (and) or -o (or) within the test expression itself (older syntax) or by separating multiple test expressions with && (and) or || (or). For instance to check for multiple conditions using your example you could do:
if [ "$fN" = "louis" -a "$LN" = "smith" ]
or
if test "$fN" = "louis" -a "$LN" = "smith"
Written using && or ||:
if [ "$fN" = "louis" ] && [ "$LN" = "smith" ]
or
if test "$fN" = "louis" && test "$LN" = "smith"
(note: no matter which you use you must always leave a space between the test expression and the [ and ] and a space or a newline (or line break indicator ;) between if test "$a" = b ; then...)
+is String concatenation, bash doesn't think so,