- PR -

シェルスクリプトの動いているディレクトリ

1
投稿者投稿内容
なおっち
常連さん
会議室デビュー日: 2004/11/15
投稿数: 29
投稿日時: 2008-02-02 22:41
シェルからシェルを呼び出す際に、元のシェルが相対パスや絶対パス
(クーロンからの起動)等を意識せずに動かす方法はありますか?

例えば「/opt/aaaaa/bin/test1.sh」から「/opt/aaaaa/bin/test2.sh」呼び出す際に
当然「test1.sh」に「test2.sh」の絶対パスを書けば、問題なく呼び出せますが、
シェルの数も多い上、使うサーバによってディレクトリが異なるので、
全シェルに、フルパスを記入するのは、かなりのパワーが必要になってしまうので
自分のディレクトリを自動で分かるシェルにしたいと思い下記のような
スクリプトを考えました。

PROCESS=`echo $0`
NAME=`basename ${PROCESS}`
LOCAT=`echo ${PROCESS} | sed -e "s/${NAME}//"`
${LOCAT}test2.sh

こうすれば、どこで起動させても関係なく動くかと思ったのですが
やり方が力技っぽくて、何かスッキリした方法をお持ちの方はいませんか?
(コマンドがあるのかも・・・・)
Console
ベテラン
会議室デビュー日: 2005/09/10
投稿数: 65
お住まい・勤務地: 石川県金沢市
投稿日時: 2008-02-03 02:43
こんばんわ、

引用:

こうすれば、どこで起動させても関係なく動くかと思ったのですが
やり方が力技っぽくて、何かスッキリした方法をお持ちの方はいませんか?
(コマンドがあるのかも・・・・)



dirname コマンドもありますが..

BASEDIR='/foge' とかして実行パスを限定するとか..
PATH='/bin:/usr/bin' とかして環境変数を変えるとか..
なおっち
常連さん
会議室デビュー日: 2004/11/15
投稿数: 29
投稿日時: 2008-02-03 09:49


そんな便利なコマンドがあるとは・・・

勉強不足でした。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)