Come accedere alla cartella da un'applicazione .tool

0

Posso creare uno script selezionabile modificando l'estensione .sh su uno .tool (o .command ). Tuttavia quando lo faccio, i percorsi che ho nel mio script si interrompono.

Sto cercando di eseguire un'applicazione core dotnet e il mio script di shell è semplice:

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

Dove OUTPUT è il nome della cartella con i file di rilascio dotnet al suo interno.

se lo script è un file .sh , lo script viene eseguito, ma l'utente finale deve accedere al terminale e digitare ./runscript.sh o qualsiasi altra cosa lo chiamo.

L'altra cosa che ho notato è che sembra che l'output dell'app rimuova gli spazi che cambiano:

dotnet ${PWD}/OUTPUT/Calculator.dll

in:

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

Come faccio a fare in modo che i miei percorsi nello script non si interrompano quando lo cambio in un'estensione .tool?

UPDATE:

Come suggerito ho provato entrambi:

dotnet ~/OUTPUT/Calculator

Questo si traduce in:

No executable found matching command "dotnet-/Users/jeff_mba/OUTPUT/Calculator"

e

dotnet\ ~/OUTPUT/Calculator

che risulta in:

/Users/jeff_mba/Projects/calctest/runcalc.command: line 3: dotnet ~/OUTPUT/Calculator: No such file or directory

Quindi c'è un problema di spaziatura, ma se sfuggo allo spazio continua a dire che il progetto non è stato trovato

Ma secondo lo screenshot esiste davvero.

    
posta Jeff Kranenburg 07.05.2018 - 10:56
fonte

1 risposta

0

Devi semplicemente fornire il percorso completo alla DLL nello script.

Quando esegui lo script da Terminal.app, la variabile di ambiente PWD contiene il percorso della cartella in cui ti trovi attualmente. Cioè se si usa cd per spostarsi su altre cartelle, la variabile di ambiente PWD viene automaticamente aggiornata per corrispondere.

Quando si utilizza la GUI e si fa doppio clic su un'icona, non si è realmente "in" una cartella specifica al momento. Quindi lo stesso concetto di una variabile di ambiente PWD che tiene traccia dei movimenti non ha senso.

Fornisci semplicemente il percorso completo nello script, ad esempio:

dotnet ~/OUTPUT/Calculator.dll

Qui ~ indica che attualmente hai effettuato il login nella cartella home dell'utente.

    
risposta data 07.05.2018 - 13:07
fonte

Leggi altre domande sui tag