Never use a command substitution without quoting, otherwise word splitting and glob expansions will happen! As a result, do NOT use ``.
Use $() and quote it. Also quote variables INSIDE of the substitution because they are subject to word splitting and globbing as well!
The proper format would be:
this_script_filename="$(readlink -e "$0")"

Notice that the inner doublequotes are in fact nested inside of the outer ones as the $() allows the parser to nest them.
See http://mywiki.wooledge.org/BashPitfalls#for_i_in_.24.28ls_.2A.mp3.29