Проблема с пробелами при выполнении команд оболочки в AppleScript


12

Следующий код для рекурсивной очистки каталога не работает, потому что я не могу получить доступ к папке поддержки приложений .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Если я использую ~/Library/Application Support/Google...ничего не происходит. Что ожидается.
  • Если я использую, ~/Library/Application\ Support/Google...я не могу сохранить скрипт из-за сообщения об ошибке:Syntax Error Expected “"” but found unknown token.

Как я могу обойти эту ошибку?

Ответы:


10

Пытаться:

set pathwithSpaces to "/Users/John/Desktop/This is a test.docx"
do shell script "rm -r " & quoted form of pathwithSpaces

8

Вы должны удвоить обратную косую черту, а также избежать других пробелов:

do shell script "rm -r ~/Library/Application\\ Support/Google/Chrome/Default/Pepper\\ Data/Shockwave\\ Flash"

или сбежать с пути другим способом:

do shell script "rm -r ~/'Library/Application Support/Google/Chrome/Default/Pepper Data/Shockwave Flash'"

quoted form ofзаменяет 'на '\''и окружает строку одинарными кавычками, поэтому она не работает с путями, начинающимися с ~/.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.