簡體   English   中英

從命令行運行多個八度腳本

[英]Running multiple octave scripts from command line

我有多個八度腳本,需要按順序執行。 第二個腳本依賴於第一個腳本,因此它必須等待第一個腳本完成。 我還想從命令行傳遞2個參數。 但是,以下腳本在執行第二個腳本之前不會等待第一個腳本。 我該如何糾正?

EXP_ID = $1;    
NUM_FEATURES = $2;

cd fisher;
octave computeFisherScore-AG.m $EXP_ID;
cd ..;
octave predictability-AG.m $EXP_ID $NUM_FEATURES;

嘗試:

EXP_ID = $1;    
NUM_FEATURES = $2;

cd fisher;
octave computeFisherScore-AG.m $EXP_ID;
wait
cd ..;
octave predictability-AG.m $EXP_ID $NUM_FEATURES;
wait

查看http://www.lehman.cuny.edu/cgi-bin/man-cgi?wait+3

也許八度腳本在后台運行。 您可以使用以下解決方法:

waitpid() {
    while kill -s 0 "$1" >/dev/null 2>&1; do
        sleep 1
    done
}

cd fisher;
octave computeFisherScore-AG.m $EXP_ID;
waitpid "$!"
cd ..;
octave predictability-AG.m $EXP_ID $NUM_FEATURES;

我也可以建議您正確引用您的參數,以防止意外的單詞拆分和路徑名擴展:

cd fisher
octave computeFisherScore-AG.m "$EXP_ID"
waitpid "$!"
cd ..
octave predictability-AG.m $EXP_ID "$NUM_FEATURES"

分號也可能不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM