Convert a string into an array with bash, honoring quotes for grouping
<p>I have a string as:</p>

<pre><code>Str='This string has "a substring"'
</code></pre>

<p>The string has commas so if I print the string i see:</p>

<pre><code>echo "${Str}"

This string has "a substring". 
</code></pre>

<p>If I input the command:</p>

<pre><code>$ Tmp=( ${Str} )
$ echo "${Tmp[3]}"
"a
$ echo "${Tmp[4]}"
Substring"
</code></pre>

<p>Id like to print: <code>a Substring</code>
Any advice? 
I can change the commas but it is essential that it will be printed from Str to Tmp</p>