Cómo pasar variables del script bash a AppleScript

2

Tengo un archivo con una lista de URL. Necesito pasar cada URL de un script de bash para ser usado en un AppleScript.

while read urls
do 
    osascript -e \
    'tell application "Safari"
        tell window 1 
            tell current tab to open location "$urls"
        end tell
    end tell'
done <file.txt

Esto no funciona. Pasa la cadena literal $urls como la ubicación que se abrirá en Safari. ¿Cómo puedo pasar la variable bash $urls a AppleScript?

    
pregunta I0_ol 29.12.2016 - 17:06

2 respuestas

2

Esto debería funcionar:

while read urls
do 
    osascript -e "tell application \"Safari\" to open location \"$urls\""
done<file.txt
    
respondido por el user3439894 29.12.2016 - 23:21
3

Las comillas no expanden la variable en AppleScript. Lo que necesitas hacer es ESCAPAR las citas:

'indica a la pestaña actual que abra la ubicación \ "$ urls \"'

Sin embargo, una mejor manera de hacerlo es usando run argv . Por ejemplo:

#!/bin/bash
url="foobar.com"
osascript -e 'on run {myurl}' -e 'tell application "Safari" to set the URL of the document to myurl' -e 'end run' $url 

Mi preferencia es usar un script separado para el AppleScript. En bash, esto se vería como:

#!/bin/bash
osascript -e 'do scriptname \"$url\"'
    
respondido por el Allan 29.12.2016 - 17:38

Lea otras preguntas en las etiquetas