title: How can bash interpret a zero-length argument from an expanded string?
body: <p>On OSX, running sed to edit in place works by passing a zero-length argument like this:</p>
  
  <pre><code>find . -name "*.java" -print | xargs sed -f src/main/scripts/remove_snippets.sed -i ""
  </code></pre>
  
  <p>However, putting the <code>-i ""</code> into a shell variable does not work:</p>
  
  <pre><code>dashi='-i ""'
  find . -name *.java -print | xargs sed -f src/main/scripts/remove_snippets.sed $dashi
  </code></pre>
  
  <p>Instead of editing in place the <code>""</code> gets interpreted as a literal string to use for the backup extension, leaving a directory of java files named <code>*.java""</code>. </p>
  
  <p>How can bash be told to interpret the <code>""</code> as an empty argument rather than an argument containing two double-quotes?</p>