J'essaie d'exécuter C Programme à Inside Bash, mon programme C utilise le périphérique GPS et en calculant la distance en fonction des valeurs de latitude et de longitude. Le problème est que lorsque j'exécute ce programme C via Bash pour obtenir la distance, je ne suis pas en mesure de rediriger sa sortie dans un fichier ou une variable. J'ai essayé ceci: Sortie = $ (./ exécuté) Mais ça ne fonctionne pas. Pour exécuter C code Inside Bash, j'utilise le code suivant:
#!/bin/bash echo `clear` echo enter file name read FILE gcc -o a.out $FILE -lm ./a.out
3 Réponses :
Utilisez -o drapeau dans GCC pour créer le binaire d'abord.
Je vais vous donner un exemple en utilisant "Hello World" Code: P>
~]# bash hw.sh Hello World
Si vous n'utilisez pas -o code> un binaire appelé a.out code> sera généré
Je suis à peu près sûr que vous devez également "marquer" le nouveau fichier comme exécutable. Utilisez chmod + x ./a.out code>. Bonne chance.
Vous n'incluez pas le journal de débogage demandé, mais à partir de votre capture d'écran, il semble que votre programme ne quitte jamais. Il reste juste autour et écrit des valeurs pour toujours. Par conséquent, la capture n'atteint jamais la fin, votre relevé code> echo code> ne s'exécute jamais.
Vous devez modifier votre programme ou votre invocation afin qu'il puisse à une certaine sortie. P>
si Vous ne pouvez pas modifier le programme, vous pouvez capturer, par exemple Seules les dix premières lignes utilisant l'une des: p>
merci chacun pour les commentaires
Il fonctionne maintenant maintenant en utilisant le code ci-dessus p> p>
Que se passe-t-il à la place?
sans rediriger, il montre la sortie, mais elle ne montre rien
sortie = $ (./.out) code> devrait capturer la sortie, il n'y a aucun moyen de s'échapper.Mais alors echo $ Sortie ne montre rien
Peut-on mettre la mise à jour de votre message avec le code qui tente de capturer et d'afficher la sortie, puis de l'exécuter avec
bash -x votre code> pour obtenir un journal de débogage et inclure cela? (Assurez-vous de copier-coller tous les deux sans changement)@ BANO091: Je ne vois aucune redirection dans le code que vous avez posté.