title: Unix tcsh - alias using command line argument $1 versus \!:1
body: <p>In Unix (tcsh), I've referenced command line arguments in my aliases with two different notations - <code>$1</code> and <code>\!:1</code>.</p>
  
  <p>But I noticed that if I try to save <code>$1</code> to an environment variable, it doesn't get saved. However <code>\!:1</code> does get saved.</p>
  
  <pre><code>alias hear 'setenv x \!:1 &amp;&amp; echo $x'
  --&gt; hear that
  that
  --&gt; echo $x
  that
  
  alias oh 'setenv x $1 &amp;&amp; echo $x'
  --&gt; oh no
  no
  --&gt; echo $x
  </code></pre>
  
  <p>Nothing shows up on the echo of $x when $1 is used to store the value.  What is the reason for this?</p>