((Linux)シェルスクリプトで自身の絶対パスを取得したいも似たような記事になってます。)
例えば下記のようなシェルスクリプトがあるとします。
BKFILE="/var/bkup/user.tgz"
BKSRC="/home/hoge/"
BKSRC_UP=`dirname ${BKSRC}`
BKSRC_NAME=`basename ${BKSRC}`
cd $BKSRC_UP
tar vzcf $BKFILE $BKSRC_NAME
相対パスでtarを使ってバックアップするスクリプトですが、/home/hoge/ の上のフォルダをバックアップしたいのに、いちいち一時変数(BKSRC_NAME)に入れてから tar コマンドにかけないといけません。
また、相対パスでtarを使いたいわけですが、チェンジディレクトリするためにまた一時変数に入れないといけません。
で、ググルと内気でシャイな相対男子、dirnameで絶対男子になるの巻 - i am voidに参考になる情報が。。
$()を使うと一時変数にいちいち入れなくてもいいようです。
BKFILE="/var/bkup/user.tgz"
BKSRC="/home/hoge/"
cd $(dirname ${BKSRC})
tar vzcf $BKFILE $(basename $BKSRC)
参考: