7 votes

Comment passer des variables d'un script bash à un AppleScript

J'ai un fichier avec une liste d'URL. J'ai besoin de passer chaque URL à partir d'un script bash pour être utilisé dans 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 

``

Cela ne fonctionne pas. Cela passe la chaîne littérale $urls en tant qu'emplacement à ouvrir dans Safari. Comment puis-je transmettre la variable bash $urls à AppleScript?

``

3voto

user3439894 Points 52496

Ceci devrait fonctionner:

while read urls
do 
    osascript -e "tell application \"Safari\" to open location \"$urls\""
done

2voto

Douglas Points 10417

Les guillemets n'étendent pas la variable en AppleScript. Ce que vous devez faire est d'ÉCHAPPER les guillemets :

'tell current tab to open location \"$urls\"`

Cependant, une meilleure façon de le faire est d'utiliser run argv. Par exemple :

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

Ma préférence est d'utiliser un script séparé pour l'AppleScript. En bash, cela ressemblerait à ceci :

#!/bin/bash
osascript -e 'do scriptname \"$url\"'

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X