-
Shells clips
Bonjour,
Je dois executer une base de regles en utilisant CLIPS sous linux
comment faut il faire pour que le "load" "reset" "run" habituels de CLIPS s'execute sans intervention de l'utilisateur.
Il parait qu'un shell peut faire sa et comment on fait s'il vous plait
Merci Bien
-
ce que tu veux faire c'est lancé des commandes à des moments prévus à l'avance ?
si c'est ça regarde du coté de "cron" :
http://linux.developpez.com/faq/?page=System#cron
-
En fait, ce que je veux c'est ecrire un shell (je saurais faire normalement)
mais je veux que ce shell il s'execute dans le moteur d'inference CLIPS.
En fait sous windows, j'ecris des programmes .CLP et je charge le fichier dans la memoire puis je l'execute à la main.
Moi ce que je fais, enfin veut faire c'est un petit automate qui me permettrait de resoudre des problemes d'intelligence artificielles sur linux.
Seulement, le top c'est que la machine elle lance les taches elle meme __ le chargement, l'execution et me donne les resultats.
La difficulté a mon sens c'est dire à linux d'executer un pgm dans un environnement different.
Voila mon gros probleme
-
Bonne nouvelle, Linux adore les langages interprétés!
Il a deux termes qui dévrait t'intéressé sous Linux: shebang et crontab.
Tous les utilisateurs d'interpréteurs finissent par les connaîtres, ce qui vaut pour PHP et Pearl est valable pour Clips. Donc utilile le moteur de recherche avec ces termes, tu aura de quoi pour t'amuser.
Ceci dit cela devrait résoudre des problèmes lié à des taches périodiques et tes appels de scripts, mais comme je me souvien pas d'avoir vu des fonctions pour la gestion des processus dans ce langage, cela risque d'être coton de synchronisé des taches....
-
Ben en fait j'ai pas trop compris ce que tu voulais me dire et à quoi servait la commande shebang
Merci pour ton aide
-
un ptit exemple serait le bien venu
-
regarde là pour le shebang :
http://linux.developpez.com/faq/?pag...d#scriptsimple
en fait si tu lance ton script clips en tappant "/usr/bin/clips programme.clp" il suffit de mettre "#!/usr/bin/clips" en haut de ton fichier "programme.clp" pour le transformer en script
-
http://www.linux-france.org/article/lgazette/issue-34/lg-34-2.html
#!/bin/sh
Dans cet exemple c'est cela la shebang. Dans cet exemple, l'auteur transforme son script en executable. Car en lisant cette ligne, linux connait l'interpréteur à utilisé ainsi que son path.
J'ignore la commande que tu utilises pour lancer ton interpréteur, mais en supposant que c'est clsp et bien tu n'aura qu'à mettre:
#!/bin/clsp
sur la première ligne et script sera traité désormais comme un executable. Ce que cela veut dire, en clair. Que pour lancer ce script, il ne te sera plus nécessaire de spécifier le nom de ton interpréteur pour demarrer le script. Que ce soit de la ligne de commande ou de ton application, c'est comme si ton document serait devenu un .exec sous Windows..... Et tu peut même mettre ton fichier dans le répertoire /usr/bin/ ou usr/local/bin, et cela ne posera aucun problème. (et du coup tu pourra lancer ton script à partir de n'importe quel repertoire...)
Remarque la commande chmod , elle te sera aussi utile. Car elle permet de faire en sorte de limiter qui peut lancé ton script. (elle peut aussi t'empéche de faire fonctionné ton script si tu l'oublie... :arf: )
Je peux paraître vague mais je suis un peu dans le même bateau que toi!
Mon langage d'intérêt est Ruby et comme il n'est pas très connu. Cela m'a été difficile d'apprendre ces renseignements....Car les gens ne sont pas sûr que leurs connaissances s'applique à l'extérieur de ce qu'il connaisse.
Je ne peux que te diriger dans la bonne direction, mais je ne suis pas un expert. J'ai le saut à Linux en partant du Mac. Et c'est encore moin évident....
J'espère d'avoir pu t'aidé... :wink:
-
et pour executer un fichier .lisp sous linux quelle est la commande s'il te plait?
je veux dire en ligne de commande
-
Tu travailles avec le langage Clisp ou CLIPS? car les deux langages sont utilisé en intelligence artificiel....Mais ils sont très différent!
Et bien ordinairement c'est <le nom de ton langage> suivie due nom de fichier.
Du genre ruby monappl.rb
Il existe un système de documentation sous Linux: la commade man.
Lance dans un console la commande man <lenom_de_ton_interpréteur> et tu y trouvera sans doute les commande de base. Note qu'il faut utilisé les flèches pour faire défilé la fenêtre....
Si cela ne donne rien, regarde dans ce répertoire:
/usr/share/doc/packages/clisp/doc
ou
/usr/share/doc/packages/<le nom du langage>