- blogs:
- cles::blog
2009/10/13
[ by hsur at 12:34]
shスクリプト内で安全に相対パスを使う
シェルスクリプトでバッチを書いたものの、いざcronに仕掛けたらうまく動かないというパターンはバッチを作った人であれば一度は経験があると思います。基本的には環境変数がセットされていなくて、PATHが通ってなかったというパターンなんかが多いと思いますが、その次に多いのが、スクリプトの内部で相対パスを使っているために、自分でも予期しないうちにカレントディレクトリに依存したスクリプトになってしまっていたというのがあります。いちいち外部のプログラムを絶対PATHで書いていってもいいのですが、それも結構鬱陶しいので、僕はスクリプトの行頭に下記のような2行を追加するようにしています。
scriptdir.sh
#!/bin/bash
SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR
# これ以下に処理を書く
pwd
SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR
# これ以下に処理を書く
pwd
こうするとカレントディレクトリが何処であっても、スクリプトの置いてあるディレクトリをカレントディレクトリとしてスクリプトを実行できるようになります。ちょっとしたスクリプトにも必ず書いておくようにすると、他人にスクリプトを実行してもらうときも、「###にcdしてから・・・」という説明を省く事ができるので意外と便利です。
$ pwd
/tmp/test
$ ./scriptdir.sh
/tmp/test
$ cd ..
$ pwd
/tmp
$ ./test/scriptdir.sh
$ cd ~
$ pwd
/home/hsur
$ /tmp/test/scriptdir.sh
/tmp/test
/tmp/test
$ ./scriptdir.sh
/tmp/test
$ cd ..
$ pwd
/tmp
$ ./test/scriptdir.sh
$ cd ~
$ pwd
/home/hsur
$ /tmp/test/scriptdir.sh
/tmp/test
このエントリは役に立ちましたか?
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/3249
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
Copyright © 2004-2010 by CLES All Rights Reserved.
sp-20100315154732644595554@cles.net
sp-20100315154732644595554@cles.net
サイト内検索
おしらせ
検索ワード
- cron シェルスクリプト 動かない
- Yahoo! - 10/03/15 12:41:39
- シェル sh 相対パス
- Yahoo! - 10/02/21 20:43:16
Tags [All Tags]
google | php | ruby | windows | firefox | linux | SoftwareEngineering | java | spam | ranking | curry | camera | seo | FireEmblem | thunderbird | server | marketing | mobile | Doctoral | docomo
へぇが多いエントリ [Top 100]
- SourceForge.JPのSubversion... (4)
- コインランドリー (4)
- おめでとうございます (4)
- 時間がたっても変わらないもの (4)
- 知恵の輪 サターン編 (3)
- 和食 小錦 (3)
- XPathのチートシート (3)
- サーバセットアップ (3)
- .inはインドのccTLDなのか (3)
- Thanks ! 10000 Hit ! (3)
閲覧数が多いエントリ [Top 100]
1 . ドラゴンクエストVIの影響力 [8766x]
2 . やっぱりあった!パクれる読書感想文! [7256x]
3 . Echofon for Firefox [6159x]
4 . 急性胃腸炎 [5565x]
5 . 芸能人の本名。 [5489x]
2 . やっぱりあった!パクれる読書感想文! [7256x]
3 . Echofon for Firefox [6159x]
4 . 急性胃腸炎 [5565x]
5 . 芸能人の本名。 [5489x]
最新のエントリ [archives]
最新のコメント [Latest 100]
- CD-ROM起動で、HDDを完全消去
- NP_Moblog v1.16
- pinzoro 01/15
- hsur 12/29
- and more...
- 耳がおかしいと思ったら突発..
- baca 01/13
- hsur 01/13
- and more...
カテゴリ別エントリ
cles::blogについて
Syndicate
Calendar
Referrers
Blog People
Admin
★はてな認証APIをつかってログインすることができます。
Powered by NP_Paint




