Проблема с пробелами при выполнении команд оболочки в 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.

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

gentmatt
источник

Ответы:

10

Пытаться:

set pathwithSpaces to "/Users/John/Desktop/This is a test.docx"
do shell script "rm -r " & quoted form of pathwithSpaces
adayzdone
источник
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заменяет 'на '\''и окружает строку одинарными кавычками, поэтому она не работает с путями, начинающимися с ~/.

LRI
источник
3
do shell script "open -n /Applications/App\\ Store.app"

Обрабатывать spaceс \\.

Например, заменить App Store.appна App\\ Store.app.

Абхишек Джайн
источник