実行場所を気にしなくてよいシェルスクリプトの作り方
[History] [Last Modified] (2015/05/30 20:25:32)
Recent posts
What is this site?
A platform for makers to share their knowledge.

Share your robots/products with others.
New robots/products

作り方

シェルスクリプトの冒頭に

cd `dirname $0`

という一行を追記しておくと、実行場所を気にしなくてよいスクリプトになります。

具体例

/home/vagrant/sample.sh

#!/bin/sh
cd `dirname $0`
pwd

実行権限を付与しておきます。

$ chmod +x /home/vagrant/sample.sh

どこから実行しても同じ結果です。

$ cd /
$ /home/vagrant/sample.sh
/home/vagrant

$ cd /home/vagrant
$ ./sample.sh
/home/vagrant

sample.sh が配置されているディレクトリをカレントディレクトリとして想定したシェルスクリプトを作成できることを意味します。

補足

dirname コマンド

パスのうちディレクトリ部分を取得できます。

$ dirname /home/vagrant/sample.sh 
/home/vagrant

basename コマンド

パスのうちファイル名の部分を取得できます。

$ basename /home/vagrant/sample.sh 
sample.sh

$0

自分自身 (実行中のコマンドファイル) へのパスを取得できます。

Related pages