How to pass variables from bash script to AppleScript

Solution 1:

This should work:

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

Solution 2:

The quotes don't expand the variable in AppleScript. What you need to do is ESCAPE the quotes:

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

However, a better way to do this is using run argv. For example:

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

My preference is to use a separate script for the AppleScript. In bash, this would look like:

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