Sebagian besar jawaban memberi Anda jalur saat ini dan sensitif terhadap konteks. Untuk menjalankan skrip Anda dari direktori mana pun, gunakan cuplikan di bawah ini.
DIR="$( cd "$( dirname "$0" )" && pwd )"
Dengan berpindah direktori dalam subkulit, kita kemudian dapat memanggil pwd
dan dapatkan jalur skrip yang benar terlepas dari konteksnya.
Anda kemudian dapat menggunakan $DIR
sebagai "$DIR/path/to/file"
Direktori skrip shell saat ini (awal) adalah direktori tempat Anda memanggil skrip.
Seperti yang telah disebutkan, lokasinya adalah tempat skrip dipanggil. Jika Anda ingin memiliki referensi skrip lokasi pemasangannya, caranya cukup sederhana. Di bawah ini adalah cuplikan yang akan mencetak PWD dan direktori yang terpasang:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"