シェルスクリプトの冒頭に
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 /home/vagrant/sample.sh
/home/vagrant
パスのうちファイル名の部分を取得できます。
$ basename /home/vagrant/sample.sh
sample.sh
自分自身 (実行中のコマンドファイル) へのパスを取得できます。