Problema com espaços vazios ao executar comandos de shell no AppleScript


12

O código a seguir para limpar um diretório recursivamente não funciona porque não consigo passar da pasta de Suporte ao Aplicativo .

try
    do shell script "rm -r ~/Library/Application\ Support/Google/Chrome/Default/Pepper Data/Shockwave Flash"
end try
  • Se eu usar, ~/Library/Application Support/Google...nada acontece. O que é esperado.
  • Se eu usar, ~/Library/Application\ Support/Google...não consigo salvar o script devido à mensagem de erro:Syntax Error Expected “"” but found unknown token.

Como posso solucionar esse erro?

Respostas:


10

Experimentar:

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

8

Você deve dobrar as barras invertidas e também escapar dos outros espaços:

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

ou escape do caminho de outra maneira:

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

quoted form ofsubstitui 'por '\''e envolve a sequência entre aspas simples, para que não funcione com os caminhos que começam com ~/.


3
do shell script "open -n /Applications/App\\ Store.app"

Manuseie o spacecom \\.

Por exemplo, substitua App Store.apppor App\\ Store.app.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.