Di Mac OS X, dari sudut pandang aplikasi skrip shell, bagaimana saya bisa mendapatkan jalur direktori bundelnya untuk digunakan dalam skrip shell ? Saat menggunakan perintah env, ia mengembalikan bahwa jalur eksekusi aplikasi adalah /, dan tidak ada variabel lingkungan yang membantu. Saya melakukan ini karena saya ingin mengakses beberapa sumber daya bundel, dan karena aplikasi tidak selalu diinstal di / Aplikasi.
Terima kasih!
macos
path
shell-script
bundle
moala
sumber
sumber
Jawaban:
DIR=$(cd "$(dirname "$0")"; pwd)
akan memberikan nama direktori skrip shell. Untuk aplikasi skrip shell, ini akan menjadi/path/to/Your shell script application.app/Contents/MacOS
.sumber
Saya menyarankan untuk mencoba
which
, tetapi tidak berfungsi untuk aplikasi Mac. Kamu bisa memakai menemukan , dengan mengingat bahwa aplikasi Mac dibundel, dan shell melihatnya sebagai direktori. Jangan lupa untuk menambahkan ekstensi untuk aplikasi (.app).sumber
Jika Anda bisa mendapatkan jalur absolut aplikasi ke file yang dapat dieksekusi, mendapatkan dir bundle itu semudah menambahkannya dengan /../ .. yang menjadikan Anda bundel utama. Jika Anda menginginkan sumber daya, tambahkan saja di atas / Sumber.
sumber
Sunting: Anda menginginkan sesuatu yang sama sekali berbeda dari jawaban asli saya. Menyimpannya di bawah jika berguna bagi siapa pun. Sekarang saya pikir Anda sedang mencari
basename
perintah, meskipun saya masih tidak yakin dan saya pikir Anda harus menentukan lebih banyak informasi tentang apa yang Anda lakukan sebelum kami akan dapat memberikan jawaban yang layak.Saya tidak yakin saya mengerti pertanyaannya. Apakah Anda mencoba mencari direktori aplikasi? Misalnya. untuk Kalkulator, Anda ingin direktori yang ada di Calculator.app?
Atau apakah Anda mencari sesuatu yang sama sekali berbeda?
sumber
basename
dalam skrip bash? Sepertinya pertanyaan ini akan lebih baik ditempatkan di Stack Overflow (mungkin sudah ditanyakan dan dijawab).