# Syntaxe commande shell dans Apple Script



## Anonyme (29 Mars 2013)

Bonjour, 

une question de novice.

Soit la commande Terminal qui permet de lancer Safari en allemand, alors que le français est la langue principale sur l'ordi : 

/Applications/Safari.app/Contents/MacOS/Safari -AppleLanguages '(de)'

Si j' intègre cette commande dans un script (après un choix de langue), ça fonctionne, Safari se lance en allemand.

do shell script "/Applications/Safari.app/Contents/MacOS/Safari -AppleLanguages '(de)'"

Maintenant je dois faire la même chose avec Google Chrome.

La commande suivante fonctionne dans le Terminal :

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome -AppleLanguages '(de)'

Mais la même commande dans Apple Script bute sur une erreur de syntaxe sur le premier espace après l'anti-slash.

Si je supprime l'espace et/ou l'anti-slah, plus d'erreur de syntaxe, mais à l'exécution j'obtiens : no such file or directory.

Quelle doit donc être la syntaxe pour cette ligne, dans Apple Script :

do shell script "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome -AppleLanguages '(de)'"

Merci !!


----------



## Larme (29 Mars 2013)

De mes souvenirs : Vire les \ devant les espaces.
Les guillemets foutent la merde avec les \. (cf. différences entre guillemets et apostrophes en Shell).

Édit :
Testes par exemple dans le Terminal :
echo "Is your home directory $HOME?"
echo "Is your home directory\ $HOME?"

Du coup, faudrait mieux voir ce qu'est qui n'est pas considéré exactement comme fichier ou répertoire (le message juste avant no such file or directory).


----------



## Anonyme (29 Mars 2013)

Merci pour ta réponse.

Je n'ai aucune erreur quand j'exécute ma commande dans le Terminal.

Mais en Apple Script, la ligne :

do shell script "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome -AppleLanguages '(de)'"

me renvoie quand je compile : Erreur de syntaxe, " prévu mais jeton inconnu trouvé, et place le marqueur sur l'espace après le premier anti-slash, càd juste après Google\

Si je supprime l'espace, càd : Google\Chrome, même erreur avec le marqueur sur le "C".

Si je supprime l'anti-slash, c'est à dire : Google Chrome, il n'y a plus d'erreur de syntaxe, mais à l'exécution j'obtiens : 

sh : /Applications/Google : no such file or directory


Quant aux lignes que tu m'as donné, les 2 fonctionnent dans le terminal.


----------



## Larme (29 Mars 2013)

Ça fait longtemps que je n'ai pas fait de Shell...


```
do shell script ""/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" -AppleLanguages '(de)'"
```
 ?


----------



## Anonyme (29 Mars 2013)

Non, erreur de syntaxe.

Ayé j'ai trouvé : Google\\ Chrome

Merci.

Pour ceux que ça intéresse, petit script pour lancer Google Chrome soit en français, soit en anglais :


set answer to the button returned of (display dialog "Langue Chrome
" with icon caution buttons {"Annuler", "Français", "Anglais"})
if answer = "Français" then
	do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome -AppleLanguages '(fr)'"
else if answer = "Anglais" then
	do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome -AppleLanguages '(en)'"
end if


----------



## Anonyme (29 Mars 2013)

Exemple d'un petit script enregistré comme application, permettant de lancer Safari en choisissant la langue (français / anglais).

Placer l'icône dans le Dock, et lancer Safari depuis cette icône.

Recliquer sur l'icône fait quitter Safari et re-propose le choix de la langue.

Ici


----------

