L'input dell'utente assegnato alla variabile in AppleScript viene quindi passato al comando "do shell script"

2

Come faccio a prendere input dall'utente in AppleScript e poi passare il risultato della variabile a un comando do shell script dallo stesso AppleScript?

Ad esempio, l'utente digita la risposta foo nella seguente finestra di dialogo:

display dialog "Please enter your username" default answer ""
set the userID to the text returned of the result
do shell script "rm -rf /Users/$userID/.Trash/*" with administrator privileges

Quindi, in questo caso, se dovessi incorporare la risposta di foo al posto di $userID , leggerebbe quanto segue quando esegue il comando:

display dialog "Please enter your username" default answer ""
set the userID to the text returned of the result
do shell script "rm -rf /Users/foo/.Trash/*" with administrator privileges

Come faccio a passare quella variabile che ho preso prima, in questo caso sarebbe $ userID e incorporarla nel mezzo della chiamata shell script che ho appena sopra.

    
posta Danijel-James W 27.10.2013 - 15:04
fonte

2 risposte

2

Questo assegna il nome inserito alla variabile answer .

display dialog "What's your name?" default answer ""
set answer to text returned of result
display dialog "Your name is " & answer
    
risposta data 27.10.2013 - 15:21
fonte
1

È necessario concatenare le stringhe (l'operatore & ) per combinare le parti "fisse" della stringa con la parte variabile. Dovresti anche usare il comando quoted form of per assicurarti che tutti gli input dell'utente siano gestiti in modo sicuro (spazi, caratteri jolly, caratteri di citazione e altri caratteri trattati dalla shell in modo specifico) nessuno di questi è probabilmente in un "nome utente breve" ma è sempre una buona idea gestire le cose in sicurezza):

display dialog "Please enter your username" default answer ""
set the userID to the text returned of the result
do shell script "rm -rf /Users/"& quoted form of userID & "/.Trash/*" with administrator privileges

Puoi anche passare il resto del nome del percorso a quoted form of , ma non devi includere il carattere jolly:

… "rm -rf " & quoted form of ("/Users/"& userID & "/.Trash/") & "*" …
    
risposta data 28.10.2013 - 07:56
fonte

Leggi altre domande sui tag