AppleScript преобразует переменную, которая является строкой в ​​список - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь создать сценарий оболочки в моем AppleScript, где я выполняю поиск в файле CSV, и он возвращает список в мой AppleScript.

Например, в моем CSV есть строки

01,{"tacos","burritos"}
02,{"burgers","hot dogs", "corn dogs"}

мой AppleScript установлен как

set a to 01
set b to 02    
set myMenu to do shell script "grep " & a & " [path to CSV] | cut -d ',' -f 2")
    set menuChoice to (choose from list myMenu)
    display alert menuChoice

Когда я делаю это, мой выбор из списка отображается как один элемент в списке, который показывает пункты меню в виде строки, но я хочу, чтобы они были отдельными пунктами меню.

Значение моего выбора из списка отображается как:

{"tacos","burritos"}

Вместо:

tacos
burritos

1 Ответ

0 голосов
/ 19 октября 2019

Я думаю, что следующее должно дать вам представление о том, как извлечь несколько элементов из выходных данных сценария оболочки для заполнения списка Applescript. По сути, скажем, что ваш сценарий оболочки делает это:

echo item1,item2,item3

Вы можете предложить эти 3 элемента в списке для выбора пользователем, например, так:

osascript <<EOF
   set AppleScript's text item delimiters to ","
   set theList to every text item of (do shell script "echo item1,item2,item3")
   set menuChoice to (choose from list theList)
EOF

, который даст вам это:

enter image description here


Теперь, больше похоже на ваш вопрос, если вы сделаете свой CSV похожим на это:

01,tacos,burritos
02,burgers,hot dogs,corn dogs

Затем вы можете использовать:

osascript <<EOF
set AppleScript's text item delimiters to ","
set theList to every text item of (do shell script "grep '^01,' my.csv | cut -d, -f 2-")
set menuChoice to (choose from list theList)
EOF

, чтобы получить:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...