Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Technologies Apple _ applescript et terminal

Écrit par : christianbis 14 Jan 2003, 00:43

Bonjour,
Je desire faire un petit script pour me connecter à mldonkey via le terminal mais j'avoue que n'y connais pas grand chose.
Voici le script :
tell application "Terminal"
activate
do script with command "cd /mldonkey2.00r2/mldonkey2r2"
do script with command "./mldonkey >& mldonkey.log &"
do script with command "telnet localhost 4000"
end tell

Le résultat est que trois fenêtres du terminal s'ouvrent avec chacune une commande alors que je n'en voudrais qu'une avec les 3 commandes !

Écrit par : Bru 14 Jan 2003, 08:59

Dans une même ligne de commande, il est possible d'enchainer à la suite plusieurs commandes: il suffit de les séparer par un point-virgule.

Dans ce cas il ne te reste qu'à faire un seul DO SCRIPT avec les 3 commandes.

Écrit par : christianbis 14 Jan 2003, 09:33

Bonjour,

Si je fais ce que tu dis mon script devient alors :

tell application "Terminal"
activate
do script with command "cd /mldonkey2.00r2/mldonkey2r2";"./mldonkey >& mldonkey.log &";"telnet localhost 4000"
end tell

Et là le terminal ne s'ouvre plus et j'ai un message d'erreur qui apparait en meme temps que Applescript s'arrête sur le point virgule.
Le message d'erreur est le suivant :
end of line, etc. attendu mais unknown token trouvé.

Écrit par : Bru 14 Jan 2003, 10:41

NON, c'est DANS la ligne de commande qu'on peut enchainer les commandes, et non dans le srcipt lui-même :

tell application "Terminal"
activate
do script with command "cd /mldonkey2.00r2/mldonkey2r2; ./mldonkey >& mldonkey.log &; telnet localhost 4000"
end tell

Écrit par : christianbis 14 Jan 2003, 11:12

Ok merci cela marche.
Il y a encore un petit défaut mais je ne sais pas si l'on peut faire quelque chose. Le terminal m'ouvre maintenant 2 fenêtre. Une où il ne met rien et la seconde où il exécute les commandes.
Y - a - t - il un moyen d'empêcher l'ouverture de cette première fenêtre.

D'autre part lorsque les commandes ont été exécutées y a t il un moyen toujours via applescript de masquer l'application terminal.
J'ai bien dit masquer et non quitter.

Écrit par : Bru 14 Jan 2003, 11:45

La première fenêtre qui s'ouvre est due à tell "Terminal" (en effet à chaque lancement de l'appli, une fenêtre vierge apparait). La seconde est provoquée par do script, et doit se refermer toute seule à la fin de l'exécution de la commande.

Je ne connais pas le dictionnaire du terminal, alors je ne sais pas si on peut manipuler les fenêtres du terminal par script.

Pour masquer une application, regarde dans le dictionnaire du finder, tu y trouveras la commande pour le faire.

Écrit par : christianbis 14 Jan 2003, 23:33

Un grand merci

Écrit par : istreen 8 Aug 2011, 19:23

Bonsoir,

Je me suis basé sur l'exemple trouvé sur ce poste pour essayer de faire mon premier apple script.


tell application "Terminal"
activate
do script with command "sudo mkdir -p /opt/mports; sudo mkdir -p /opt/mports>; cd /opt/mports ; sudo svn checkout http://svn.macports.org/repository/macports/ trunk ; cd trunk/base ; sudo ./configure --enable-readline ; sudo make install ; sudo make distclean"
end tell

Les commandes terminales sont

sudo mkdir -p /opt/mports
cd /opt/mports
sudo svn checkout http://svn.macports.org/repository/macports/trunk
cd trunk/base
sudo ./configure --enable-readline
sudo make install
sudo make distclean


mais le script me donne une erreur de syntaxe


sudo mkdir -p /opt/mports; sudo mkdir -p /opt/mports>; cd /opt/mports ; sudo svn checkout http://svn.macports.org/repository/macports/ trunk ; cd trunk/base ; sudo ./configure --enable-readline ; sudo make install ; sudo make distclean
-bash: syntax error near unexpected token `;'

Ou ai je mal fais svp ?

Merci pour votre aide

si je fais ça


tell application "Terminal"
activate
do script with command "sudo mkdir -p /opt/mports"
do script with command "cd /opt/mports"
do script with command "sudo svn checkout http://svn.macports.org/repository/macports/ trunk"
do script with command "cd trunk/base"
do script with command "sudo ./configure --enable-readline"
do script with command "sudo make install"
do script with command "sudo make distclean"
end tell


Ca m'ouvre plusieurs fenêtres alors que je voudrais que les ordres se fasse l'un à après les autres dans la même fenêtre

avec


tell application "Terminal"
activate
do script with command "sudo mkdir -p /opt/mports & cd /opt/mports & sudo svn checkout http://svn.macports.org/repository/macports/ trunk & cd trunk/base & sudo ./configure --enable-readline & sudo make install & sudo make distclean"
end tell


ça passe mieux déjà

Écrit par : EricaL** 9 Aug 2011, 00:30

Bonsoir,

Citation (istreen @ 8 Aug 2011, 14:23) *
Je me suis basé sur l'exemple trouvé sur ce poste pour essayer de faire mon premier apple script.


tell application "Terminal"
activate
do script with command "sudo mkdir -p /opt/mports; sudo mkdir -p /opt/mports>; cd /opt/mports ; sudo svn checkout http://svn.macports.org/repository/macports/ trunk ; cd trunk/base ; sudo ./configure --enable-readline ; sudo make install ; sudo make distclean"
end tell

il y a trois erreurs dans les commandes de l'AppleScript
1- L'erreur que donne bash est le caractère > dans "mports>"
2- Deux fois la même commande "sudo mkdir -p /opt/mports"
3- L'espace dans "macports/ trunk"

Ceci fonctionne
Code
tell application "Terminal"
    activate
    do script "sudo mkdir -p /opt/mports; cd /opt/mports; sudo svn checkout http://svn.macports.org/repository/macports/trunk; cd trunk/base; sudo ./configure --enable-readline; sudo make install; sudo make distclean"
end tell

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)