在bash脚本中取消osascript上的按钮

时间:2010-11-29 23:18:54

标签: macos bash dialog applescript osascript

我在bash脚本中有一个osascrip行的小问题。 bash脚本通过Applescript“从列表中选择”对话框进行调用,然后您可以通过if [[$ * = *“选项1 ...选择标记来定义选项。

一位朋友给了我osascript一行,“选择一个文件”对话框出现,它可以用来选择东西,但是“取消”按钮也会触发“选择文件”对话框。

我觉得osascript线在接近结尾处是不完整的,因为OK和cancel触发选择文件对话。

在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行中缺少cancel选项以及我如何实现它?

1 个答案:

答案 0 :(得分:3)

以下是如何使用“从列表中选择”对话框。注意当按下取消时我们如何“错误-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