Newsgroup: it.comp.macintosh
Titolo: [Applescript] Passare una variabile

Vorrei poter lanciare da terminale uno script con un parametro. Questo deve
essere poi gestito all'interno dello script stesso.
Mi spiego meglio.
Per esempio da terminale voglio poter scrivere:
prova.app
 pippo
dove 
prova.app
 e' un applescript che al suo interno associa "pippo" ad una
variabile.
Ho girato un po' ma non sono riuscito a caverne nulla.
A proposito, dove si trova Applescript Studio?
Ho letto che dovrebbe essere con xcode, ma non l'ho trovato.
Ciao ... Dino

 Ho letto che dovrebbe essere con xcode, ma non l'ho trovato.
E' quello: apri XCode e crei un nuovo progetto Applescript. 
La documentazione di AppleScript Studio e' qui:
file:///Developer/Documentation/AppleScript/AppleScript.html
Gli esempi invece sono qui:
file://localhost/Developer/Examples/AppleScript%20Studio/

"
AS_Ogg="Esempio di Xmail"
AS_Body="Complimenti Hai inviato un messaggio con Xmail"
AS_SMTP="
smtp.com
"
osascript -e "send mail to \"$AS_eDest\" from \"$AS_eMit\" subject
\"$AS_Ogg\" body \"$AS_Body\" SMTP server \"$AS_SMTP\""
Ci sono due cose da notare il parametro -e di osascript che sta ad inidcare
che quello che verra` dopo non sara` il percorso di un file applescrip da
lanciare, ma un vero e proprio comando applescript.
La seconda cosa riguarda il problema delle " che vengono usate nel comando
applescript, queste devono essere sotituite dal \" altrimenti verrano
interpretate in maniera non corretta dallo script.
Inoltre Federico ha proposto questa modifica la mio script per poter mandare 
come parametro unico una striga conetnetne uno o piu` spazi.
Per aggirare il problema degli spazi o altri caratteri 'esotici' nei 
parametri
(" " serve a preparare i parametri):
tell app "Terminal" to ¬
	do script "/bin/sh /Mioscript.command " &¬
		quoted form of Par1 & " " &¬
		quoted form of Par2 & " " &¬
		quoted form of Para3
Se vuoi eseguire uno script senza aprire il terminale:
do shell script "/Mioscript.command"
-- 
Riccardo Saettone
Per rispondere togliere Alfa e Beta dall'indirizzo

 Non puoi.
Mi correggo. Puntuale arriva macosxhints con una soluzione:
http://www.macosxhints.com/article.php?story=2004012913110734

 compila ed esegue al volo uno script, cosi' (non ho testato):
Grazie ad entrambi per i suggerimenti. Purtroppo questo approccio riesco ad
utilizzarlo solo in script sh, mentre il resto del mio script funziona solo
come script tcsh :)
Vabbe' dovro' studiarmi anche sh. 
Ciao ... Dino

macgeeek wrote:

Provato con il metodo precendete e funziona. Ho fatto il mio bello
script. ;)
Mentre con questo secondo metondo non ci sono riuscito.
Facendo esattamente quello che dice ottengo questo errore:
[dinog4:~] dino% perl osarun a.scpt test "second test"
String found where operator expected at osarun line 9, near ".$script.'""
  (Might be a runaway multi-line "" string starting on line 8)
        (Missing semicolon on previous line?)
Bareword found where operator expected at osarun line 9, near ") as"
        (Missing operator before as?)
Bareword found where operator expected at osarun line 9, near ") with"
        (Missing operator before with?)
syntax error at osarun line 6, near ") ?"
syntax error at osarun line 9, near ".$script.'""
Global symbol "$script" requires explicit package name at osarun line 8.
Execution of osarun aborted due to compilation errors.
Non sono un esperto quindi l'errore potrebbe essere banalissimo.
Ciao ... Dino