AppleScript - довольно минимальный язык и использует другие приложения для выполнения вещей, о которых он не знает.
Вы получаете сообщение об ошибке, потому что Terminal не знает, что срок folder
есть. Что-то вроде Finder или Системные события может использоваться для обработки файловых объектов, а также вы можете принудительно указать путь к псевдониму, который приведет к ошибке, если он не существует - обратите внимание, что вы используете термина exists
в этом случае будет из стандартного набора, который предназначен для общих объектов, поэтому он вернет true, поскольку строка существует.
Также обратите внимание, что каждый оператор do script
будет в свое собственное окно, если не указано иное. Я думаю, что вы ищете что-то вроде:
set theFolder to "/Users/you/Desktop"
tell application "Finder" to set folderExists to exists (folder theFolder as POSIX file)
if folderExists then
tell application "Terminal"
activate
try
do script "cd Desktop" in tab 1 of window 1
on error errmess
log errmess
do script "cd Desktop"
end try
delay 0.05
do script "echo testing" in tab 1 of window 1
end tell
else
beep
end if