Cómo acceder a la carpeta desde una aplicación .tool

0

Puedo crear una secuencia de comandos en la que se pueda hacer clic, cambiando la extensión .sh a una extensión .tool (o .command ). Sin embargo, cuando hago esto, las rutas que tengo en mi script se rompen.

Estoy intentando ejecutar una aplicación central dotnet y mi script de shell es simple:

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

Donde SALIDA es el nombre de la carpeta que contiene los archivos de la versión dotnet.

si el script es un archivo .sh , el script se ejecuta, pero luego el usuario final tiene que ir al terminal y escribir ./runscript.sh o como yo lo llame.

La otra cosa que noté fue que parece que la salida de la aplicación elimina los espacios que cambian:

dotnet ${PWD}/OUTPUT/Calculator.dll

en:

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

¿Cómo hago para que mis rutas en el script no se rompan cuando lo cambio en una extensión .tool?

ACTUALIZACIÓN:

Como sugirió la respuesta, he probado ambos:

dotnet ~/OUTPUT/Calculator

Esto resulta en:

  

No se ha encontrado ningún ejecutable que coincida el comando "dotnet- / Users / jeff_mba / OUTPUT / Calculator"

y:

dotnet\ ~/OUTPUT/Calculator

que resulta en:

  

/Users/jeff_mba/Projects/calctest/runcalc.command: línea 3: dotnet ~ / OUTPUT / Calculator: No existe tal archivo o directorio

Por lo tanto, hay un problema de espaciado, pero si me escapo del espacio todavía dice que no se encuentra el proyecto

Pero según la captura de pantalla realmente existe.

    
pregunta Jeff Kranenburg 07.05.2018 - 10:56

1 respuesta

0

Simplemente debe proporcionar la ruta completa a la DLL en el script.

Cuando ejecuta el script desde Terminal.app, la variable de entorno PWD contiene la ruta a la carpeta donde se encuentra actualmente. Es decir. Si usa cd para moverse a otras carpetas, la variable de entorno PWD se actualiza automáticamente para que coincida.

Cuando estás usando la GUI y haces doble clic en un icono, no estás realmente "dentro" de una carpeta específica en ese momento. Por lo tanto, el mismo concepto de una variable de entorno PWD que rastrea sus movimientos no tiene sentido.

En su lugar, simplemente proporcione la ruta completa en el script, como por ejemplo:

dotnet ~/OUTPUT/Calculator.dll

Aquí ~ significa que hay una sesión iniciada en la carpeta de inicio del usuario.

    
respondido por el jksoegaard 07.05.2018 - 13:07

Lea otras preguntas en las etiquetas