1 votos

Crear un archivo que cuando se abre y escribe una línea en Terminal

¿Hay alguna forma de crear un archivo que, al pulsarlo, abra Terminal y escriba y ejecute una línea especificada? (Ej: say hello world )

3voto

MH. Puntos 468

Lo que intentas hacer es escribir un "shell script" (por si más adelante necesitas buscarlo en Google).

La primera línea de un shell script debe especificar qué intérprete utilizar. En su caso, utilice sh para el shell Bourne normal. Usted escribe esto con lo que se llama un 'shebang' así:

#!/bin/sh

después de esto escribe los comandos que quieras ejecutar, en tu caso, say hello world . El intérprete de comandos lo leerá igual que si lo hubiera escrito en el terminal.

En tu caso, tu archivo final debería ser:

#!/bin/sh
say hello world

Si escribe esto en TextEdit.app asegúrese de que está guardando en el modo de texto sin formato (que se cambia a través de Cmd + Shift + T ). Puede elegir guardar con la extensión .command o .sh .

Si quieres ejecutarlo haciendo doble clic te recomiendo el programa .command extensión.

¡Y ya está!

Posible error: si al ejecutarlo recibe un error que dice:

El archivo "[filename]" no se ha podido ejecutar porque yo privilegios de acceso apropiados.

tienes que darte permiso para ejecutarlo. Para ello ejecute:

chmod u+x path/to/my/file

Si no sabe cuál es la ruta del archivo, escriba:

chmod u+x

escribe un espacio y arrastra el archivo a la ventana.

Si tiene curiosidad, u+x significa otorgar derechos de ejecución al usuario (propietario).

2voto

shsteimer Puntos 8749

El enfoque simple, pero completamente falible, es simplemente escribir un shell script. Guárdelo en un archivo llamado mysay.sh :

#!/bin/sh
say hello world
say number five is alive

Si no tienes XCode instalado, debería abrirse en Terminal al hacer doble clic sobre él.

También puede hacer esto con AppleScript y es un poco más duradero ya que no tiene que preocuparse si la aplicación predeterminada para .sh archivos no es Terminal:

tell application "Terminal"
  set currentTab to do script "/usr/bin/say hello world"
  do script "/usr/bin/say number five is alive" in currentTab
end tell
delay 5
tell application "Terminal" to quit

Guárdalo como una Aplicación desde el Editor AppleScript y podrás hacer doble clic sobre él y tu Mac te hablará. Puedes esperar y cerrar la sesión de Terminal después con un poco más de AppleScript si quieres.

1voto

Bogdan Gavril Puntos 4059

También puede hacer esto con AppleScript como se mencionó anteriormente, por Ian C. Sin embargo, usted puede hacer el comando único en menos líneas, y con un delay . He aquí un AppleScript que ejecutará el comando, esperará 5 segundos y saldrá del terminal.

tell application "Terminal" to do script "say hello world"
delay 5
tell application "Terminal" to do script "logout"
tell application "Terminal" to quit

Es sólo un método alternativo, comparado con el de @Ian C. También podrías tomar el archivo .sh de Ian, y renombrarlo .command si tienes XCode, que lo abrirá en Terminal, y hará lo mismo que el AppleScript, sólo que sin el retardo. Espero que esto ayude.

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