 <p>Ksh93 doesn't have such expressions, so it's better to make it explicit. But you can bundle multiple variables (with their initial values) in a single <code>export</code> phrase:</p> <pre><code>export A=1 B=2 C=3 </code></pre> <p>Testing:</p> <pre><code>$ (export A=1 B=2 C=3 &amp;&amp; ksh -c 'echo A=$A B=$B C=$C D=$D') A=1 B=2 C=3 D= </code></pre> <p>There is no C-like shortcut, unless you want this ugly thing:</p> <pre><code>A=${B:=${C:=1}}; echo $A $B $C 1 1 1 </code></pre> <p>... which does not work with <code>export</code>, nor does it work when B or C are empty or non-existent.</p> <p><strong>Edit</strong></p> <p>Ksh93 <em>arithmetic</em> notation <strong>does</strong> actually support C-style chained assignments, but for obvious reasons, this only works with numbers, and you'll then have to do the <code>export</code> separately:</p> <pre><code>$ ((a=b=c=d=1234)) &amp;&amp; echo $a $b $c $d 1234 1234 1234 1234 $ export a b d $ ksh -c 'echo $a $b $c $d' 1234 1234 1234 </code></pre> <p>Note how we do not export <code>c</code>, and its value in the child shell is indeed empty.</p>