TLDR;
Je veux exécuter du code d'octave dans le terminal sans interface graphique, mais je suis confronté à une erreur d'en-tête ELF.
Question complète;
J'essaie d'exécuter un script d'octave de base, comme on peut le voir ici, qui est enregistré dans un fichier nommé testing.oct
x = 5
% This is just some silly comment to make minimum length.
Mais, lorsque je mets octave testing.oct
dans ma ligne de commande qui se trouve déjà dans ce répertoire avec ce fichier, le message d'erreur suivant s'affiche:
error: /home/user/programs/junk/testing.oct: failed to load: /home/user/programs/junk/testing.oct: invalid ELF header
Lancer cat testing.oct
vérifie que je charge le fichier voulu.
J'utilise Ubuntu 18.04 que je viens de mettre à jour à partir de 16.04. Selon octave --version
j'utilise 4.2.2. Auparavant (en 16.04), j’utilisais octave de cette manière avec la sortie "fenêtre de commande" apparaissant dans mon terminal et les fonctions de tracé/figure générées sous forme de petites fenêtres qui attendent patiemment que vous les fermiez pour que l’exécution puisse se poursuivre.
J'ai déjà essayé de suivre les conseils contenus ici pour réparer mon installation d'octave au cas où le problème se poserait, mais cela n'a pas corrigé mon problème.
Le chargement de l'interface graphique d'octave et le placement du script dans la fenêtre de commande génèrent la même erreur.
Toute information qui pourrait m'aider à utiliser octave de la ligne de commande de cette manière serait grandement appréciée.
Edit 1: En réponse à un commentaire demandant apt-cache policy octave
:
octave:
Installed: 4.2.2-1ubuntu1
Candidate: 4.2.2-1ubuntu1
Version table:
*** 4.2.2-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic/universe AMD64 Packages
100 /var/lib/dpkg/status
Edit 2: En réponse à un commentaire demandant dpkg -l | grep octave
:
ii liboctave4:AMD64 4.2.2-1ubuntu1 AMD64 shared libraries of the GNU Octave language
ii octave 4.2.2-1ubuntu1 AMD64 GNU Octave language for numerical computations
ii octave-common 4.2.2-1ubuntu1 all architecture-independent files for octave
ii octave-doc 4.2.2-1ubuntu1 all documentation of the GNU Octave language
Je pense que le problème ici est juste l'extension de fichier .oct que vous avez utilisée. L'extension .oct a une signification particulière pour octave et n'est pas censée être utilisée pour les fichiers de script d'octave. Il suffit de renommer le fichier de testing.oct en testing.m et d’essayer à nouveau, cela devrait alors fonctionner:
$ octave testing.oct
error: /home/elias/slask/testing.oct: failed to load: /home/elias/slask/testing.oct: file too short
$ mv testing.oct testing.m
$ octave testing.m
x = 5