Команды сценария оболочки отлично работают в терминале, но не через AppleScript

У меня есть две команды, которые мне нужно запустить через терминал. Они
cd /Users/[my name]/Desktopи curl 'www.google.com'>google.txt. При запуске их непосредственно в терминале они работают нормально. Однако при запуске в AppleScript:

do shell script "cd /Users/Peter1/Desktop"
do shell script "curl 'www.google.com'>google.txt"

Выдало ошибку:

sh: google.txt: Permission denied

Почему это происходит? Что я могу сделать, чтобы это исправить?

Спасибо

Ответы (1)

Ваш скрипт выше запускает два разных скрипта. Один из них — изменение рабочего каталога на папку рабочего стола пользователя ( ~/Desktop). Другой сценарий загружает www.google.comи помещает его в документ в вашем корневом каталоге ( /), у которого нет на это прав.

Вы можете исправить это, сократив его до одного утверждения, do shell scriptнапример:

do shell script "curl www.google.com > ~/Desktop/google.txt"

Короче говоря, скрипт сначала загружает содержимое веб-сайта www.google.com, а затем создает новый файл в указанном каталоге. Вы также можете заметить ~символ, который эквивалентен /Users/username/.

А, хорошо, спасибо. Я думал, что первая команда превращает рабочий каталог в рабочий стол, а вторая сохраняет файл туда (на рабочий стол)