2017-09-25 2 views
0

J'ai un script shell composé de différents scripts et j'utilise un script shell pour les relier tous à un processus automatisé. J'essaie de traiter l'imagerie radar et j'ai besoin d'utiliser Octave pour certains calculs -> valeur seuil pour la classification. Je veux analyser le résultat calculé d'octave en script shell afin que je puisse l'utiliser comme variable d'entrée de commande pour un autre script. Je ne veux pas écrire des sorties d'octave dans un fichier, car il y aura des centaines de tuiles à traiter. Existe-t-il un moyen d'analyser la variable calculée du script d'octave au script shell?Octave analyse la variable au script shell

EDIT: J'ai changé mon code long par exemple simple basé sur le commentaire

exemple de base:

Marque calcul octave.

#!/usr/bin/env octave 
# file: octave.m 
result= 1 + 2 

L'analyser en tant que variable dans le script shell.

#!/bin/sh 
    octave octave.m # I want to get one number value 
    # some method to get result from octave script 
    ./shell2.sh result 

Utilisez la variable dans un autre script.

#!/bin/sh 
    #file: shell2.sh 
    echo result 
+0

Vous devriez écrire un (https://stackoverflow.com/help/mcve) [MCVE] – Andy

+0

@Andy Je changé le code entier par l'exemple de base – zubro

+0

ok, il y a plusieurs façons. Je laisserais le script octave imprimer le résultat à stdout comme les autres utilitaires unix le feraient et le relirait dans bash. Un autre moyen (sale?) Consiste à utiliser setenv du script Octave. Un autre écrit dans un fichier temporaire et le relit – Andy

Répondre

0

Comme je l'ai déjà dit dans le commentaire: GNU Octave laisser revenir la valeur sur la sortie standard:

zubro.sh:

#!/bin/sh 
# filename of this script is zubro.sh 
result=`octave zubro.m` 
./shell2.sh "$result" 

zubro.m:

# filename of this script is zubro.m 
x = 1 + 2; 
printf ("%i\n", x); 

shell2.sh:

#!/bin/sh 
# filename of this script is shell2.sh 
echo the result is $1 

quand zubro.sh appelé (assurez-vous de chmod u+x vos scripts ...):

$ ./zubro.sh 
the result is 3 
+0

Merci :) Ça fonctionne. – zubro