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

  • ¿Qué es mdflagwriter y por qué consume tanta RAM?
  • ¿Iniciar acceso directo a Spotlight del browser?
  • ¿Por qué no muestra ps aux * todo *?
  • Agregue .gsheets a Spotlight en hojas de cálculo
  • La línea de command Dia no funciona
  • ¿Se puede restablecer el foco cuando se comporta mal, está mal o se está indexando constantemente?
  •  #!/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?

  • No se puede iniciar después de habilitar FileVault macOS Sierra
  • La copy de security de Time Machine a una SMB comparte Mavericks
  • Desinstalar rEFInd 0.8-3.7 en Yosemite
  • ¿Existe una manera sensata de emular completamente el comportamiento de la key multimedia más nueva en un Apple Extended Keyboard II?
  • No se puede download Yosemite
  • Preferences del sistema constantemente salta a la pantalla Teclado
  • 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).