<p>Carl talks about a method to move function definitions to the bottom of a script using sed:</p>
<pre><code>#!/bin/sh
source &lt;(sed &#39;1,/^exit/ d&#39; $0)

__say &quot;hello&quot;

exit

__say()
{
    echo $1
}
</code></pre>
<p>Guest Host #1 (scroll to the bottom to ruin the surprise) talks about the shift command using this example:</p>
<pre class="bash"><code>startdate=&quot;$1&quot; # Pick up date
shift
days=0

# Loop through args and create events
while [ $1 ] ; do # as many times as you add a timestamp
        [ $1 != &quot;off&quot; ] &amp;&amp; khal new $(date -j -v+&quot;$days&quot;d -f %Y-%m-%d +%Y-%m-%d $startdate) $1 8H Work
        let days++
        shift
done
</code></pre>
<p>Guest Host #2 provides tips and examples on how to use variables safely and politely provide default values. One example of assigning a default value is:</p>
<pre><code>foo=${foo:-&quot;blah&quot;}
</code></pre>
<p>Carl then closes out with the : (colon) shell builtin and provides a variation on the above default value:</p>
<pre><code>: ${foo:=&quot;blah&quot;}
</code></pre>
