[英]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
也許八度腳本在后台運行。 您可以使用以下解決方法:
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.