Manera fácil de ejecutar script de shell

Quiero poder search en Spotlight un script de shell (o algo que llame a un script de shell) y ese script de shell abre una window de Terminal para que el resultado se muestre en vivo (y puedo interrumpirlo con ctrl + C ).

En este momento, tengo un backup.sh

 #!/bin/bash caffeinate -s \ rsync -hva --progress --stats --delete "/path/to/source/" "/path/to/destination" 

que he cambiado el nombre a backup.command para poder hacer doble clic en Finder y funciona perfectamente. Pero no puedo searchlo en Spolight porque quiero que Spotlight solo busque Aplicaciones, Preferences del Sistema y Contactos, y si marcó Desarrollador, entonces muestra backup.command y también muchos files no deseados que son innecesarios.

¿Que puedo hacer?

Traté de aplicarlo , pero luego se ejecuta en segundo plano, y no abre una nueva window de Terminal por lo que no puedo ver el progreso de cómo va, y tampoco puedo detener el progreso con Ctrl + C. ¿Cualquier sugerencia?

  • ¿Utiliza cURL para download imágenes en XML?
  • Use whereis no puede encontrar el file en la Mac
  • En Terminal, ¿cómo borrar el command escrito rápidamente?
  • Establecer el shell pnetworkingeterminado para MacPorts bash en Mac OS X 10.6.8?
  • mkdir: /Users/me/.bash_sessions: Permiso denegado
  • ¿Instalando fonts desde la terminal en lugar de Font Book?
  • Finder trata los enlaces simbólicos de forma diferente a la terminal MacBook Pro Retina OS X 10.9.4
  • iTerm2: session.nombre de usuario no configurado o restablecido en Mac después de la session de salida SSH
  • 2 Solutions collect form web for “Manera fácil de ejecutar script de shell”

    Aplicando con ornitorrincos:

    Descarga Platypus y crea una aplicación desde el script de shell.

    Ejemplo:

    enter image description here

    La configuration anterior crea una aplicación con una barra de progreso (incluidos los detalles) y puede retirarse; sin embargo, el process de synchronization de datos debe cancelarse (cancelarse) manualmente.

    enter image description here

    La aplicación en sí se puede encontrar con Spotlight.


    Solución simple de AppleScript:

    En Mavericks (y probablemente más adelante) debe permitir que la aplicación AppleScript controle la computadora en "Preferences del sistema -> Seguridad y privacidad -> Privacidad -> Accesibilidad".

    Abra ScriptEditor, ingrese el siguiente fragment de código y expórtelo como una aplicación con un nombre único:

     tell application "Terminal" delay 2 set newWindow to do script "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2" activate end tell 

    Si necesita permissions de raíz antes de sudo -> "sudo cafeinato -s …."

    Puede refinar la aplicación AppleScript comprobando si Terminal ya tiene windows abiertas y crear una nueva para ejecutar el script de shell:

     set myScript to "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2" tell application "System Events" if exists (window 1 of process "Terminal") then tell application "Terminal" set newWindow to do script myScript activate end tell else tell application "Terminal" delay 2 set Window1 to do script myScript activate end tell end if end tell 

    La aplicación AppleScript se puede encontrar con Spotlight.


    En Mountain Lion tiene que habilitar "Preferences del sistema -> Accesibilidad -> Habilitar el acceso para el dispositivo de asistencia" y cambiarlo un poco para que las soluciones de la aplicación AppleScript funcionen correctamente:

     set myScript to "caffeinate -s rsync -hva --progress --stats --delete /path/to/folder /path/to/folder2" tell application "System Events" if exists (window 1 of process "Terminal") then tell application "Terminal" reopen activate set newWindow to do script myScript end tell else tell application "Terminal" reopen activate do script myScript in window 1 end tell end if end tell 

    AppleScript con script de shell "externo" (backup.sh):

    Este es el enfoque final que usa el OP. Tomado de aquí . En Mavericks (y probablemente más adelante) debes permitir que la aplicación AppleScript controle la computadora en "Preferences del sistema -> Seguridad y privacidad -> Privacidad -> Accesibilidad". Uno puede cargar el .sh completo (ubicado dentro de la aplicación en Contents/Resources/backup.sh ) con:

     set bashFile to path to resource "backup.sh" tell application "Terminal" delay 1 activate set newWindow to do script "bash " & quoted form of (POSIX path of bashFile) end tell 

    Puede refinar la aplicación AppleScript comprobando si Terminal ya tiene windows abiertas y crear una nueva para ejecutar el script de shell:

     set bashFile to path to resource "backup.sh" tell application "System Events" if exists (window 1 of process "Terminal") then tell application "Terminal" delay 1 set newWindow to do script "bash " & quoted form of (POSIX path of bashFile) activate end tell else tell application "Terminal" delay 2 set Window1 to do script "bash " & quoted form of (POSIX path of bashFile) activate end tell end if end tell 

    Ejecute chmod 755 NameOfYourScript desde el terminal, luego ./NameOfYourScript

    Si ls aparecerá verde

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).