シェルスクリプトで変数にコマンドの出力結果を代入したい場合、コマンド置換機能を使います。
コマンド置換には以下のようにバッククォートを用います。
test_var=`date`
echo $test_var
Sun Oct 5 01:19:19 JST 2014
あるいは$()という記法もあります。
test_var=$(date)
echo $test_var
Sun Oct 5 01:20:54 JST 2014
$()を用いた記法のほうが便利です。例えばコマンドの中に更にコマンドを含める(ネストする)場合のことを考えてみましょう。
sample_var=`echo hello \`hostname\``
バッククォートを用いた場合、hostnameの部分のバッククォートをエスケープしないとhostnameがコマンドとして評価されません。しかし、いちいちエスケープするのは面倒だし、見づらいです。
これが、$()を用いた記法だと。。。
sample_var=$(echo hello $(hostname))
グッと見やすくなります。
以上。