Я работаю над проектом, который включает использование Applescript для создания списка открытых URL-адресов в браузере Google Chrome пользователей, чтобы сохранить их на случай, когда я в конечном итоге захочу снова открыть Chrome. Обнаружив, что мне нужен способ определить, какие вкладки присутствуют в каких окнах, я решил попытаться создать вложенный список в Applescript, в котором каждое окно является собственным подсписком URL-адресов вкладок, а затем вернуть его в объявленной переменной. до подоболочки.
Я делаю это с помощью следующего кода
tabs=$(/usr/bin/osascript << EOT
tell application "Google Chrome"
# save a variable to the number of windows open
set windowCount to number of windows
set myWindows to {}
repeat with x from 1 to windowCount
# count the tabs in the window we are iterated upon
set tabcount to number of tabs in window x
# this list will hold the URLs, delimited by commas
set myURLs to {}
# secondary loop, this time iterating tabs
repeat with y from 1 to tabcount
# grab URL from current tab
set tabURL to URL of tab y of window x
# append URL to end of list
copy tabURL to the end of myURLs
end repeat
# this means our end result will be a list of lists
# containing the URLs of all the tabs of all the windows
copy myURLs to the end of myWindows
end repeat
return myWindows
end tell
EOT)
Проблема, с которой я сталкиваюсь, заключается в том, что, хотя Applescript правильно создает вложенный список, то есть
{{"https://stackoverflow.com/questions/ask"}, {"https://twitter.com", "https://facebook.com"}}
Кажется, что Bash сглаживает список, когда я ссылаюсь $tabs
позже, на что-то вроде
https://stackoverflow.com/questions/ask, https://twitter.com, https://facebook.com
, что заставляет меня поверить в Applescript иBash не ладит при передаче сложных переменных. Так ли это, и не может ли Bash читать многомерные списки из Applescript? Или я просто неправильно программирую это?
Спасибо!