2012-05-19 9 views
13

sto lavorando con AppleScript e la necessità di fare questo:Uso le virgolette in una stringa AppleScript

set TextToWrite to " #!/bin/bash cd "$(dirname "$0")" java -server -Xmx4G -jar ./craftbukkit.jar" " 

Come si può vedere, il testo ho bisogno di fare in una stringa ha le citazioni in essa. Come faccio a impostare

#!/bin/bash cd "$(dirname "$0")" java -server -Xmx4G -jar ./craftbukkit.jar" 

a una stringa AppleScript senza le virgolette che lo incasina?

+1

La mia risposta è [in basso] (http://stackoverflow.com/a/10668503/990363). Il tuo comando 'bash' potrebbe essere semplificato in' cd "$ {0%/*}" && java ', BTW. Nessun elemento esterno e un minimo di controllo del flusso. – kopischke

risposta

15

Per inserire citazioni letterali in una stringa di Applescript, si deve sfuggire loro, vale a dire

set myString to "This is a \"quoted\" text." 

AppleScript ha la stessa convenzione maggior parte delle lingue, che è quello di utilizzare una barra rovesciata per sfuggire dei caratteri speciali, di cui ce ne sono solo due: virgolette e ... backslash. Vedi lo section “Special string characters” of the AppleScript Language Guide.

+3

Si noti inoltre che ci sono alcuni trucchi per l'uso delle virgolette nelle stringhe di AppleScript se questi vengono passati alla shell, la maggior parte di essi ha a che fare con il modo in cui i processi di shell sono sfuggiti e le virgolette non scalate. Vedi [questa domanda] (http://stackoverflow.com/questions/8138167/how-can-i-escape-shell-arguments-in-applescript) per ulteriori dettagli. – kopischke

3

la seguente sintassi può essere utilizzata anche:

set aString to "quoted" 
set myString2 to "This is a " & quoted form of aString & " text." 
+1

mi ha dato le virgolette singole – carmin

0

forma citata di (dirname come percorso POSIX)

-3

Usando le citazioni in AppleScript è abbastanza facile non vi resta che fare la fine di linea e iniziare a cita

EG

finestra di visualizzazione "ciao mondo"

ma quando si decide di mettere una variabile nel testo è necessario utilizzare &

set my_name a "Michael" dialogo

visualizzazione "ciao" & my_name

ringraziamento

+0

La domanda è correlata all'utilizzo di virgolette _con una stringa (ad esempio la loro fuga). Questo crea solo una stringa standard. –

+0

Oh mi dispiace non ho capito che volevi uscire da stringhe per fare tutto ciò che devi usare è il simbolo "&" simle e se si utilizza –

0
set x to "He said \" Enter the matrix.\" "display dialog x 

Proprio copia questo in applescript il modo più semplice per capire.

+0

Questa domanda ha 3 anni! Qual è la tua risposta migliore di quella di @kopischke? – hawkfalcon