1 votos

Shell AppleScript script

¿Cómo puedo ejecutar un shell script en varios ordenadores diferentes con el mismo código? Si lo ejecuto desde

/usuarios/'mi nombre'/escritorio/etc.

entonces no funcionará cuando lo utilice en otro ordenador, porque el nombre de usuario será diferente. ¿Hay alguna forma de ejecutarlo directamente sin pasar por el directorio de usuarios?

0 votos

Utilizarías ~/Desktop/blahblahblah . En ~ es la abreviatura de "directorio principal del usuario actual".

0 votos

Además de lo que @PatrickWynne ha dicho, si usted está haciendo referencia a estos directorios desde dentro de una shell script, también tiene disponible la shell varialbe $USER que contiene el nombre de la carpeta de inicio. Así, usted escribiría: "/Users/$USER/My Folder" por ejemplo.

0 votos

Tampoco se ha mencionado aún el uso de $HOME en lugar de ~ ya que ( ~ ) puede ser problemático, por lo que se recomienda utilizar $HOME sobre ella al utilizar do shell script en AppleScript.

1voto

Darth_Vader Puntos 138

El comando AppleScript que creo que estás buscando es:

(path to Desktop Folder) as text

o

(path to Desktop Folder)

Pero eso devolvería una ruta HFS y el código que has publicado es una ruta POSIX por lo que podrías cambiarlo a:

set homePath to POSIX path of (path to Desktop Folder) as text

Como se indica en el comentario hay $USER para el terminal y por memoria aún puedes llamarlo en AppleScript con algo como

do shell script "$USER"

Si path to desktop folder no funciona puede probar sólo path to desktop .


Editar

Respondiendo al comentario. Me enseñaron ruta HFS y alias ruta eran los mismos, lo hará otra pregunta para mayor claridad.

Construir el camino as text es un hábito cuando concat cadenas o si iba a tomar el camino y llamarlo más tarde en un do shell . Por ejemplo:

(path to desktop folder)

en script Debugger devuelve una ruta HFS. Al combinar un directorio como se mostraba en la pregunta del OP se produce un error de compilación con:

(path to desktop folder & "foobar:")

y un

(path to desktop folder) & "foobar:"

cuando he llamado a rutas utilizando path to He tenido que escribirlos como:

(path to desktop folder as text) & "foobar:"

No estaba familiarizado con short user name of (system info) y path to home folder pero es bueno saberlo. Un problema con la pregunta es que el OP la marca con terminal y AppleScript así que la solución es algo complicada.

0 votos

Algunas notas muy menores: su primera línea de código no devuelve un alias devuelve una ruta HFS. Su segunda línea de código no requiere coaccionar a text : POSIX path devuelve un text objeto. Su tercera línea de código es una llamada innecesaria a un shell script, ya que la misma información se puede recuperar a través de short user name of (system info) y también a través de system attribute "USER" . Del mismo modo, la ruta de la carpeta de inicio se puede obtener con system attribute "HOME" (y, por supuesto, los habituales path to home folder ruta).

0 votos

@CJK editado para responder al comentario

0 votos

-1voto

hap32 Puntos 9

Esto detectará cuál es el nombre de usuario con el que usted/script ha iniciado sesión y cambia a ese directorio. puede preañadirlo a su script:

     user=`whoami`        
     cd "/Users/$user"

2 votos

La variable $USER ya existe en muchas conchas. Véase mi comentario a la pregunta de la OP. Además, no habría necesidad de colocar $USER fuera de las comillas dobles. cd "/Users/$USER" está bien.

0 votos

Su respuesta de dos líneas podría ser una respuesta de una línea y no es necesario establecer una nueva variable user como ya se ha mencionado $USER ya debería existir. No es que usaría su respuesta, pero si lo hiciera lo escribo como cd "/Users/$(whoami)" en su lugar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X