# [SVN] Passing variables to osascript, or other workaround?

Allan Odgaard allan at macromates.com
Wed May 11 21:55:47 UTC 2005

On May 11, 2005, at 22:58, Charilaos Skiadas wrote:

> My problem basically is: how can I pass a list of strings to
> osascript, so that it can perceive them as a list, and so that "choose
> from list" would work as expected. I am clearly misundestanding
> something. The script I was trying is:

I think the problem was something with the list containing illegal
(according to AS) characters, probably it had \ in front of the quotes

I took the library to use perl instead of sed, because it has an IMHO
much better regex grammar (and more capabilities), I also changed stdin
for the command to be “entire document” so grep can just work on that
instead of TM_FILEPATH, plus let awk write result to stdout directly
rather than go through a variable:

list=grep '\\label{.*}'|perl -pe 's/.*\\label\{(.*?)\}(.*)\n/"$1 :$2",/'
res=osascript <<EOF
tell application "System Events"
activate
choose from list { ${list:0:${#list}-1} }
end tell
EOF
osascript -e 'tell app "TextMate" to activate' &>/dev/null &
awk <<<$res '{ printf("%s",$1) }'

Btw: questions like these should be sent to the normal user list.