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

1

¿Hay alguna forma de crear un archivo que, al hacer clic en él, abra el Terminal, escriba y ejecute una línea específica? (por ejemplo: say hello world )

    
pregunta bravokiloecho 22.04.2012 - 20:27

3 respuestas

2

El enfoque simple, pero completamente falible, es escribir un script de shell. Guarda esto en un archivo llamado mysay.sh :

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

Mientras no tengas XCode instalado, este debería abrirse en la Terminal cuando hagas doble clic en él.

También puedes hacer esto con AppleScript y es un poco más duradero ya que no tienes que preocuparte si la aplicación predeterminada para los archivos .sh 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

Guarde eso como una aplicación desde el Editor de AppleScript y puede hacer doble clic en él y su Mac hablará con usted. Puede esperar y cerrar la sesión de Terminal luego con un poco más de AppleScript si lo desea.

    
respondido por el Ian C. 22.04.2012 - 20:45
3

Lo que estás tratando de hacer es escribir un "script de shell" (en caso de que necesites buscarlo en Google más adelante).

La primera línea de un script de shell debe especificar qué intérprete usar. En su caso, use sh para el shell Bourne regular. 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 shell leerá esto igual que si lo hubieras escrito en la terminal.

En su caso, su archivo final debe ser:

#!/bin/sh
say hello world

Si escribe esto en TextEdit.app, asegúrese de estar guardando en modo de texto sin formato (que se alterna entre Cmd + Shift + T ). Puedes elegir guardar con la extensión .command o .sh .

Si quieres ejecutarlo haciendo doble clic, recomiendo la extensión .command .

¡Y eso es todo!

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

  

El archivo "[nombre de archivo]" no se pudo ejecutar porque no tiene   privilegios de acceso apropiados.

necesitas darte permiso para ejecutar. Para hacer esto ejecute:

chmod u+x path/to/my/file

Si no sabe qué es la ruta del archivo, simplemente escriba:

chmod u+x

escriba un espacio y arrastre el archivo a la ventana.

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

    
respondido por el Hawken 22.04.2012 - 21:39
1

También puede hacer esto con AppleScript como se menciona anteriormente, por Ian C. Sin embargo, puede hacer el comando único en menos líneas y con un delay . Aquí hay un AppleScript que ejecutará el comando, luego esperará 5 segundos y luego 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

Solo un método alternativo, comparado con el método de @Ian C. También puede tomar el archivo .sh de Ian, y cambiarle el nombre a .command si tiene XCode, que lo abrirá en la Terminal, y hacer lo mismo que el AppleScript, sin demora. Espero que esto ayude.

    
respondido por el ruddfawcett 22.04.2012 - 21:01

Lea otras preguntas en las etiquetas