Come passare variabili da script bash ad AppleScript

2

Ho un file con un elenco di URL. Devo passare ogni URL da uno script bash da utilizzare in 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

Questo non funziona. Passa la stringa letterale $urls come posizione da aprire in Safari. Come posso passare la variabile bash $urls ad AppleScript?

    
posta I0_ol 29.12.2016 - 17:06
fonte

2 risposte

2

Questo dovrebbe funzionare:

while read urls
do 
    osascript -e "tell application \"Safari\" to open location \"$urls\""
done<file.txt
    
risposta data 29.12.2016 - 23:21
fonte
3

Le virgolette non espandono la variabile in AppleScript. Quello che devi fare è FUGGIRE le virgolette:

'indica la scheda corrente per aprire la posizione \ "$ urls \"'

Tuttavia, un modo migliore per farlo è usare run argv . Ad esempio:

#!/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 

La mia preferenza è usare uno script separato per AppleScript. In bash, questo sarebbe:

#!/bin/bash
osascript -e 'do scriptname \"$url\"'
    
risposta data 29.12.2016 - 17:38
fonte

Leggi altre domande sui tag