¿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
)
¿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
)
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.
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).
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.
Lea otras preguntas en las etiquetas terminal