2008年01月18日

シェルスクリプトで相対パス指定したファイルを絶対パスへ変換する

livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

絶対パス


$ cat abspath.sh
#!/bin/sh

echo $(cd $(dirname $0) && pwd)/$(basename $0)
$ ./pwd.sh
/home/user/hansode/pwd.sh
$ ../hansode/pwd.sh
/home/user/hansode/pwd.sh
$ /home/user/hansode/../hansode/pwd.sh
/home/user/hansode/pwd.sh



使い所


「$(cd $(dirname $0) && pwd)」をウマク利用してファイルをインクルード。

$ cat abspath.sh
#!/bin/sh

absdir=$(cd $(dirname $0) && pwd)
. ${absdir}/../etc/common

command foo bar ...
プロジェクトディレクトリごと移動してもスクリプトは動くようになる。
どのディレクトリに配置しても良い訳だ。自分はこれを良く使う。


半袖 at 15:25 │Comments(0)TrackBack(0)ほげり道 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔