2013-09-25 5 views
0

J'utilise octave pour créer et exécuter un script. Le fichier de script est créé avec succès mais il est exécuté correctement SEULEMENT lorsque je l'exécute à partir du shell.de script Bash appelé à partir d'octave

par exemple. si je crée le fichier script contenant cette ligne

for L in {1..5}; do > ${L}.txt; done  

appeler du shell, il crée 5 fichiers mais l'appeler d'octave (système à l'aide (» ./ myscript.sh «) ou unix (» ./ myscript Sh ");) il crée un seul fichier ayant le nom « {1..5} txt »

Mon objectif actuel est de ne pas créer des fichiers vides, ce qui précède est juste un exemple. Dans mon script, j'utilise des boucles qui ne sont pas exécutées à partir d'octave.

+0

Je suppose que c'est parce que l'octave n'autorise pas les expressions d'accolade? – fedorqui

Répondre

1

Essayez "ps -f" pour voir quel shell votre "myscript.sh" est exécuté sous.

Essayez d'ajouter shell-spécificateur stricte/appliquée à la première ligne de dire à courir sous bash.

E.g.

#!/bin/bash 
ps -f 
for L in {1..5}; do > ${L}.txt; done 
+0

C'était une ... erreur idiote. J'ai juste oublié de mettre le #!/Bin/bash au début du fichier. Ça fonctionne maintenant. Merci Vlad et @fedorqui – user2815201

Questions connexes