Cara mengakses folder dari aplikasi .tool

0

Saya dapat membuat skrip yang dapat diklik, dengan mengubah .shekstensi menjadi .tool(atau .command). Namun ketika saya melakukan ini, jalur yang saya miliki di skrip saya rusak.

Saya mencoba menjalankan dotnetaplikasi inti dan skrip shell saya sederhana:

#!/bin/bash
dotnet ${PWD}/OUTPUT/Calculator.dll 

Di mana OUTPUT adalah nama folder dengan file rilis dotnet di dalamnya.

jika skrip adalah .shfile, skrip berjalan, tetapi kemudian pengguna akhir harus pergi ke terminal dan ketik ./runscript.shatau apa pun yang saya sebut itu.

Hal lain yang saya perhatikan adalah sepertinya output dari aplikasi menghilangkan ruang yang berubah:

dotnet ${PWD}/OUTPUT/Calculator.dll

ke:

dotnet-${PWD}/OUTPUT/Calculator.dll

Bagaimana cara membuatnya agar jalur saya di skrip tidak putus ketika saya mengubahnya menjadi ekstensi .tool?


MEMPERBARUI:

Seperti jawaban yang disarankan, saya telah mencoba keduanya:

dotnet ~/OUTPUT/Calculator

Ini menghasilkan:

Tidak ditemukan perintah yang cocok dengan eksekusi "dotnet- / Users / jeff_mba / OUTPUT / Calculator"

dan:

dotnet\ ~/OUTPUT/Calculator

yang menghasilkan:

/ Pengguna /jeff_mba/Projects/calctest/runcalc.command: baris 3: dotnet ~ / OUTPUT / Kalkulator: Tidak ada file atau direktori

Jadi ada masalah jarak, tetapi jika saya melarikan diri dari ruang itu masih mengatakan proyek tidak ditemukan

Tetapi sesuai tangkapan layar itu benar-benar ada.

Di luar folder OUTPUT

Di dalam folder OUTPUT

Jeff Kranenburg
sumber
Catatan tambahan dotnet tidak ditemukan harus menjadi pertanyaan yang berbeda. Masalahnya di sini adalah $ PATH berbeda jika dipanggil melalui Terminal atau melalui GUI
Mark

Jawaban:

1

Anda hanya perlu menyediakan path lengkap ke DLL dalam skrip.

Ketika Anda menjalankan skrip dari Terminal.app, variabel lingkungan PWD berisi path ke folder tempat Anda saat ini ditempatkan. Yaitu jika Anda menggunakan cd untuk pindah ke folder lain, variabel lingkungan PWD secara otomatis diperbarui agar sesuai.

Saat Anda menggunakan GUI dan mengklik dua kali ikon, Anda tidak benar-benar "di" folder tertentu pada saat itu. Jadi konsep yang sama dari variabel lingkungan PWD yang melacak pergerakan Anda tidak masuk akal.

Alih-alih, cukup sediakan path lengkap dalam skrip, seperti:

dotnet ~/OUTPUT/Calculator.dll

Di sini ~ berarti folder rumah pengguna yang saat ini masuk.

jksoegaard
sumber
Jadi apakah ini berarti saya harus memiliki folder output di direktori home saya atau dapatkah itu di mana saja?
Jeff Kranenburg
Saya telah memperbarui pertanyaan dengan hasil lebih banyak berdasarkan jawaban Anda - Saya masih memiliki masalah
Jeff Kranenburg
Folder output bisa di mana saja (dengan asumsi bahwa pengguna memiliki izin menulis ke lokasi itu).
jksoegaard
Saya pikir $ PWD memang ada dalam program GUI tetapi / jadi tidak banyak digunakan seperti yang Anda jelaskan
Tandai
Ya, tentu saja itu ada - tetapi tidak ada gunanya, karena itu bukan "melacak gerakan Anda" seperti yang saya jelaskan. Dengan kata lain tidak berguna untuk tujuan khusus ini.
jksoegaard