2017-09-25 89 views
0

我有一個由不同腳本組成的shell腳本,我使用shell腳本將它們全部連接到一個自動化進程。我嘗試處理雷達圖像,我需要使用八度進行一些計算 - >閾值分類。Octave解析變量到shell腳本

我想從八度解析到shell腳本的計算結果,所以我可以用它作爲另一個腳本的命令輸入變量。我不想將八度輸出寫入文件,因爲會有數百個圖塊進行處理。有沒有一種方法可以解析從八度腳本到shell腳本的計算變量?

編輯:我曾通過簡單的例子,根據評論

改變了我的長碼

基本例如:在八度

製作的計算。

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

將它作爲變量解析爲shell腳本。

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

在另一個腳本中使用該變量。

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

你應該寫一個[MCVE(https://stackoverflow.com/help/mcve) – Andy

+0

@Andy我有通過基本示例 – zubro

+0

更改整個代碼沒關係,有幾種方法。我會讓八度腳本像其他Unix工具一樣將結果打印到標準輸出中,並以bash的形式讀取它。另一種(髒?)方法是使用Octave腳本中的setenv。另一個寫入臨時文件並將其讀回 – Andy

回答

0

正如我在評論已經告知:讓GNU八度在標準輸出返回值:

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 

zubro.sh叫(請務必chmod u+x腳本...):

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

謝謝:)它正在工作。 – zubro