Bashシェルスクリプトで自分の絶対パスを取得

シェルスクリプトで自分の絶対パスを知る方法はこんな方法しかないんだろうか?

#!/bin/sh
D=`dirname $0`
echo `cd $D;pwd`

Pythonだとしょっちゅう書いてるアレ。

#!/usr/bin/env/ python
from os import path
print(path.abspath(path.dirname(__file__)))

お、こういう書き方があるのか。

#!/bin/sh
echo $(cd $(dirname $0);pwd)

Related posts:

  1. cx_Oracleが見つけるOracleクライアントライブラリを変えたい
  2. ActiveDirectoryのLDAP認証もどき
  3. urllib2でプロキシを参照しないようにする
  4. トラックバック入門
  5. SimpleXMLRPCServerはpathが”/”か”/RPC2”じゃないと404を返す

2 Comments

  • 2011年8月25日(木曜日) - 12:06 | Permalink

    readlink -f や -e を使うと良いですよ。

    Debian や FreeBSD では realpath というコマンドもあります。

  • eight
    2011年8月25日(木曜日) - 13:27 | Permalink

    ありがとうございます。readlink、知りませんでした。
    Ubuntuで試してみたところrealpathは最小構成では入ってないみたいですが。
    This utility provides mostly the same functionality as `/bin/readlink -f’ in the coreutils package.
    ということなのでreadlink -fと同じみたいですが、みんなこういうのが欲しくなるってことですね。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    *

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>