2 votes

Essayer de supprimer les fichiers listés dans le fichier avec AppleScript avec l'appel do shell script.

Le code suivant est un exemple de ce que j'utilise en ce moment, mais il ne cesse de se tromper :

do shell script "find /Applications -name 'Bingo.app' > /tmp/remove_files" with administrator privileges
if exists "/tmp_malware_alternate" then
    do shell script ("for i in `cat /tmp/remove_files`; do rm -rf $i") with administrator privileges
    do shell script "rm -rf /tmp/remove_files" with administrator privileges
end if

C'est censé trouver l'existence d'un fichier. (dans ce cas, Bingo.app ) et l'écrire dans un fichier temporaire (/tmp/remove_files) ce qu'il fait, puis vérifie si le fichier temporaire a été écrit. Si c'est le cas, il va regarder dans ce fichier temporaire et supprimer chaque fichier. (spécifié par i ) dans la liste des fichiers temporaires, puis supprimez le fichier temporaire lui-même.

Au lieu de cela, il ne fait que renvoyer une erreur :

/bin/sh: -c: line 1: syntax error: unexpected end of file

o

error "/bin/sh: -c: line 1: syntax error: unexpected end of file" number 2

Qu'est-ce que je rate dans tout ça ?

4voto

Justin Love Points 3073

Vous devez fermer le for boucle :

do shell script ("for i in \`cat /tmp/remove_files\`; do rm -rf $i") with administrator privileges

devrait être :

do shell script ("for i in \`cat /tmp/remove_files\`; do rm -rf $i; done") with administrator privileges

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X