我有一些AppleScript代碼,我正在執行osascript
。這是一個更大的Perl程序的一部分。我希望能夠從AppleScript打印到stdout,然後讓Perl腳本處理輸出。但是我一直無法從AppleScript內打印。我該怎麼辦?從osascript/Applescript打印到stdout
這是我已經試過:
do shell script "echo Foo"
。不ouptut Foo。- This Google Groups discussion做了一些技巧來打開/ dev/fd/1。對於我來說,我得到一個錯誤「文件的Macintosh HD:開發:FD:1未找到」
這裏是我運行腳本:
tell application "Safari"
set window_list to every window
repeat with the_window in window_list
set tab_list to every tab in the_window
repeat with the_tab in tab_list
set the_url to the URL of the_tab
-- I'd like to put a print statement here,
-- instead of display dialog
display dialog the_url
end repeat
end repeat
end tell
由於osascript
將自動打印程序的最後一個值,我可以將URL收集到一個列表中並打印出來。但是,然後我的Perl腳本將不得不解析列表,刪除引號等等。似乎應該更直接地打印每行一個URL。
感謝
謝謝,這會讓事情變得更容易解析。輸出基本上和我打印的一樣。但是我會延遲接受這個答案,希望別人能夠知道如何在沒有建立字符串的情況下進行打印。 – Evan 2012-01-07 16:37:31
沒有人回答這個問題,所以我會接受這個答案... – Evan 2012-01-09 17:08:34
爲什麼從osascript獲得stdout的唯一方法是最終返回值? – justingordon 2014-03-14 19:11:11