Кнопка отмены на osascript в скрипте bash - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть небольшая проблема со строкой osascrip в bash-скрипте.Сценарий bash вызывается через диалог выбора из списка в Applescript, а затем вы можете определить параметры с помощью тега выбора if [[$ * = * "Option 1 ....

Мой друг дал мнеВ строке osascript появляется диалог «Выбрать файл», и он работает для выбора вещей, однако кнопка «Отмена» также запускает диалог «Выбор файла».

Я чувствую, что строка osascript где-то неполнаяконец, потому что и OK, и отмена запускают диалог выбора файла.

выглядит в bash-скрипте следующим образом:

#!/bin/bash

WORKDIR="$(dirname "$0")/"

STARTUPFILE="$(/usr/bin/osascript -e "tell application \"System Events\" to activate" -e "tell application \"System Events\" to set thefile to choose file with prompt \"Choose something here\"" -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")"


if [[ $* = *"Option 1 from Applescript"* ]]; then

cp -R "$STARTUPFILE/" "somewhere else"

do other stuff with "$STARTUPFILE...

Любая идея, где в строке osascript отсутствует опция отменыкак я мог это реализовать?

1 Ответ

3 голосов
/ 01 декабря 2010

Вот как использовать диалог «выбор из списка». Обратите внимание, как мы "ошибка -128" при нажатии отмены ...

set theList to {"yes", "no", "maybe"}

choose from list theList with title "Choose From The List" with prompt "PickOne" default items "maybe" OK button name "Select" cancel button name "Quit"
tell result
    if it is false then error number -128 -- cancel
    set choice to first item
end tell
...