シェルスクリプト内でtarアーカイブ化するとき、アーカイブ名に変数を指定したいのですが、
エラーが出てtarが生成されません。なにが間違っているか教えてください。

strArch="~/Desktop/a.tar"
/usr/bin/tar cf ${strArch} 1.jpg 2.jpg 3.jpg
と書くと
/usr/bin/tar: ~/Desktop/a.tar: open 不能: No such file or directory
/usr/bin/tar: Error is not recoverable: exiting now
というエラーが出ます。

一方、
/usr/bin/tar cf ~/Desktop/a.tar 1.jpg 2.jpg 3.jpg
と書くと正常にa.tarが生成されます。