0 votes

Comment accéder à un dossier depuis une application .tool

Je peux créer un script cliquable, en changeant l'élément .sh extension à un .tool (ou .command ) un. Cependant, lorsque je fais cela, les chemins que j'ai dans mon script se cassent.

J'essaie d'exécuter un dotnet L'application de base et mon shell script sont simples :

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

Où OUTPUT est le nom du dossier contenant les fichiers de la version de Dotnet.

si le script est un .sh le script s'exécute, mais l'utilisateur final doit alors se rendre dans le terminal et taper ./runscript.sh ou peu importe comment je l'appelle.

L'autre chose que j'ai remarquée est qu'il semble que la sortie de l'application supprime tout changement d'espace :

dotnet ${PWD}/OUTPUT/Calculator.dll

dans :

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

Comment faire pour que mes chemins dans le script ne se cassent pas quand je le change en extension .tool ?


UPDATE :

Comme le suggère la réponse, j'ai essayé les deux :

dotnet ~/OUTPUT/Calculator

Cela se traduit par :

Aucun exécutable trouvé correspondant à la commande "dotnet-/Users/jeff_mba/OUTPUT/Calculateur".

et :

dotnet\ ~/OUTPUT/Calculator

ce qui donne :

/Users/jeff_mba/Projects/calctest/runcalc.command : ligne 3 : dotnet ~/OUTPUT/Calculateur : Aucun fichier ou répertoire de ce type

Il y a donc un problème d'espacement, mais si j'échappe l'espace, le projet n'est toujours pas trouvé.

Mais comme le montre la capture d'écran, il existe vraiment.

Outside of OUTPUT folder

Inside of OUTPUT folder

0 votes

La note supplémentaire concernant le fait que dotnet n'a pas été trouvé devrait être une question différente. Le problème ici est que $PATH diffère selon qu'il est appelé via le terminal ou via l'interface graphique.

1voto

Jose Chavez Points 645

Il suffit de fournir le chemin complet de la DLL dans le script.

Lorsque vous exécutez le script à partir de Terminal.app, la variable d'environnement PWD contient le chemin d'accès au dossier où vous êtes actuellement placé. C'est-à-dire que si vous utilisez cd pour vous déplacer vers d'autres dossiers, la variable d'environnement PWD est automatiquement mise à jour pour correspondre.

Lorsque vous utilisez l'interface graphique et que vous double-cliquez sur une icône, vous n'êtes pas vraiment "dans" un dossier spécifique à ce moment-là. Le même concept d'une variable d'environnement PWD suivant vos mouvements n'a donc pas de sens.

Au lieu de cela, il suffit de fournir le chemin complet dans le script, tel que :

dotnet ~/OUTPUT/Calculator.dll

Ici, ~ signifie le dossier personnel de l'utilisateur actuellement connecté.

0 votes

Cela signifie-t-il que le dossier de sortie doit se trouver dans mon répertoire personnel ou peut-il se trouver n'importe où ?

0 votes

J'ai mis à jour la question avec plus de résultats basés sur votre réponse - j'ai toujours le problème.

0 votes

Le dossier de sortie peut être n'importe où (en supposant que l'utilisateur ait les droits d'écriture à cet emplacement).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X