4.3. Linking Strings Together
In the previous script, the second command simply spits back whatever text is in the dialog box's text field when you press OK. It would be much cooler, however, if the script could give you a personalized greetingsomething like Figure 4-2.
To achieve this feat of textual impressiveness, you have to use a feature known as concatenationlinking multiple strings together into one. In AppleScript, the way you concatenate strings is with an ampersand (&), which tells AppleScript to "put together the strings on my left and right." Here's what the improved script would look like:
set userResponse to the text returned of (display dialog "Enter your name:" ¬ default answer "Sylvester") set theGreeting to "Hey, " & userResponse & "!" display dialog theGreeting
|Up to Speed|
So far, you've used variables to store values for later lines in your scripts. Variables have restrictions and quirks all their own, however, and it's important to understand them so you can effectively write your own scripts.
For one, variable names can't be the same as preexisting AppleScript keywords. That means you can't write:
set text to "WiFi"
because text is an AppleScript keyword.
On the other hand, you're free to write:
set theText to "WiFi"
because the word theText has no significance in AppleScript. In fact, no two-words-squashed-together-as-one have any meaning in AppleScript, and that's why you'll often see variable names like myNumber, lastItem, and theAnswer.
You can include letters, numbers, and underscores (_ ) in your variable names, as long as the first character of the name isn't a number. Keep in mind, though, that variable names can't be more than 251 characters longanything longer, and you'll see the dialog box shown here.
Once you've set a variable, you just insert its name in your script to access the corresponding value. That's why you can write display dialog userResponse, for example, if you've set the userResponse variable earlier in your script.
Finally, you can set the same variable more than once in a script. If you wanted to, you could write something like this:
set myNumber to 4 set myNumber to (myNumber + 8) set myNumber to (myNumber / 2)
In that example, the value of myNumber after the first line would be 4, after the second line it would be 12 (4+8), and after the third line it would be 6 ([4+8]/2).
Whenever you concatenate more than two strings (as in this example), you have to use ampersands between each item.
When the script runs, it combines the three strings"Hey, " whatever is entered as userResponse, and the exclamation marktogether. The result is that all three items appear together as one big string (theGreeting) in your final dialog box, as shown at the bottom of Figure 4-2.
Figure 4-2. Top: As in the previous scripts, you enter your name in the first dialog box. Bottom: However, when the second dialog box appears, you get a personalized welcome message, courtesy of AppleScript's text-handling capabilities.
There are other uses for concatenation, too:
Pulling the results of multiple commands into a single string. For example, if you wrote a script to administer computerized history tests, you could make your script concatenate all your responses together to create a summary of your answers.
Inserting punctuation into strings. You could use concatenation to surround a famous quote with quotation marks, for example.
Mixing numbers into strings. Just as you can concatenate two strings together, you can concatenate a string to a number. You might find that useful if you're writing a script to manage kitchen utensils, since you can combine the word "fork" with the number of clean forks left, for example.
As you become more and more familiar with AppleScript, you're sure to find many other ways to put concatenation to work for you. Just remember: if you're concatenating more than two items together, you must use a separate ampersand between every two items.