2 votos

¿Cómo puedo convertir este Applescript para Terminal osascript?

Estoy tratando de convertir este AppleScript en osascript formato que se puede ejecutar desde la terminal:

tell application "System Preferences" to activate
tell application "System Preferences"
    reveal anchor "input" of pane id "com.apple.preference.sound"
end tell
tell application "System Events" to tell process "System Preferences"
    repeat until exists tab group 1 of window "Sound"
    end repeat
    tell table 1 of scroll area 1 of tab group 1 of window 1
        select (row 1 where value of text field 1 is "Internal Microphone")
    end tell
end tell
quit application "System Preferences"

¿Cuál es la sintaxis apropiada para hacer esto? ¿Tengo que teclear osascript -e antes de cada línea?

2voto

user3439894 Puntos 5883

Hay varias formas para lograr el objetivo. Aquí es el método que yo uso...

En la Terminal ejecute el siguiente comando compuesto, por ejemplo:

f="myscript"; touch "$f"; open -e "$f"; chmod +x "$f"
  • Nota: Cambie myscript a el nombre que quieras.

En el nuevo blanco de TextEdit documento que se abre, agregue la siguiente como la primera línea:

#!/usr/bin/osascript

A continuación, agregue su AppleScript código bajo el shebang que acaba de agregar.

Guardar el documento.

Ahora para usar en la Terminal, por ejemplo:

./myscript

O:

/path/to/myscript

O lugar en un directorio que está dentro de las definidas PATH y, a continuación, utilizar simplemente su nombre, por ejemplo:

myscript


Este método también funciona; sin embargo, no es práctico para largas secuencias de comandos:

osascript -e 'tell application "System Preferences" to activate' -e 'tell application "System Preferences"' -e 'reveal anchor "input" of pane id "com.apple.preference.sound"' -e 'end tell' -e 'tell application "System Events" to tell process "System Preferences"' -e 'repeat until exists tab group 1 of window "Sound"' -e 'end repeat' -e 'tell table 1 of scroll area 1 of tab group 1 of window 1' -e 'select (row 1 where value of text field 1 is "Internal Microphone")' -e 'end tell' -e 'end tell' -e 'quit application "System Preferences"'

Por favor, lea la página de manual para osascript para obtener información adicional. En La Terminal:

man osascript


En una nota aparte, si se omite la siguiente línea de código que no tendrá que ver el Sistema de Preferencias de la ventana de flash en la pantalla:

Guardado como script, quitar:

tell application "System Preferences" to activate

En el muy largo de la línea de comandos, quitar:

-e 'tell application "System Preferences" to activate' 

-3voto

sí, usted tiene que poner osascript -e antes de cada línea como esta:

osascript -e 'display dialog "Hello from osxdaily.com" with title "Hello"'

y espero que este enlace te ayudará más.

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