2010-10-26 7 views
2

J'essaye d'appeler un programme prologue et de recevoir une sortie dans mon script bash. Actuellement, j'utilise la version extrêmement grossière de halt (0) ou halt (1), puis j'examine le code de sortie dans bash, en utilisant 0 comme vrai et 1 comme faux avec la question de mon programme prologue. Existe-t-il un meilleur moyen de gérer la sortie? J'utilise gnu prolog. Je suppose que je pourrais rediriger std dans une variable ou quelque chose, mais g-prolog sort beaucoup de non-sens, comme l'avertissement. Des idées? :)Utilisation de prolog pour la sortie dans bash shell

Répondre

3

Utilisez

gprolog --init-goal "<your_goal>,halt" 

pour éviter la sortie par défaut de GNU Prolog. D'autres systèmes ont des commutateurs similaires.

+0

Merci, que presque fait l'affaire. Je reçois quand même la sortie du compilateur. J'utilise gprolog --init-goal "[fichier], my_goal(), halt". Une idée de comment supprimer cette sortie? – Max

+0

Pipe la sortie via 'tail -n + 3'. Je viens de scanner le manuel GNU Prolog, et il semble qu'il n'y ait pas d'autre moyen (sauf par C). Assurez-vous que votre programme réussit, sinon vous entrerez dans le REPL. J'ai eu le même problème avec d'autres Prologs; jamais compris pourquoi aucun d'entre eux ne soutient ce cas d'utilisation. –

+0

@larsmans ou mat: Si je compile mon programme en utilisant gplc, est-il possible d'accomplir la même chose? --init-but ne semble pas fonctionner. – Max