2010-11-29 3 views
0

J'ai un petit problème avec une ligne osascrip dans un script bash. Le script bash est appelé via un dialogue AppLeeScript 'choisir de la liste', puis vous pouvez définir des options via un tag de sélection if [[$ * = * "Option 1 ...Bouton Annuler sur osascript dans un script bash

Un ami m'a donné le Le bouton «Annuler» permet également de sélectionner des éléments, mais le bouton «Annuler» déclenche également la boîte de dialogue «Choisir un fichier»

Je pense que la ligne osascript est quelque part incomplète vers la fin car à la fois sur OK et annuler le déclencheur choisir un dialogue de fichier

ressemble à ceci dans un script 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... 

Une idée où l'option d'annulation est manquante dans la ligne osascript et comment je pourrais l'implémenter?

Répondre

3

Voici comment utiliser une boîte de dialogue "Choisir dans la liste". Notez comment nous "erreur -128" lorsque vous appuyez sur Annuler ...

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