我正在嘗試編寫一個用於運行模擬並將輸出文件保存在不同目錄中的Bash腳本。我到目前爲止的代碼是:用於運行命令的Bash腳本
mainDirCfg="/home/software/simplesim/simplesim-3.0/sim-outorder -config ../$1"
outFile="-redir:sim"
declare -a benchmark=("bzip2_base.i386-m32-gcc42-nn dryer.jpg" "equake_base.pisa_little <inp.in> inp.out")
declare -a directory=("bzip2" "equake")
i=0
for d in "${directory[@]}"
do
cd $d
cmdRun="$mainDirCfg $outFile $2 ${benchmark[$i]}"
# above is the command to be run
$cmdRun
cd ..
((i++))
done
以上腳本的正常運行對於第一次迭代的不是第二個。但是,在命令提示符處單獨運行命令時,我會得到預期的輸出。我第二次迭代運行的命令如下:
/home/software/simplesim/simplesim-3.0/sim-outorder -config ../tmp.cfg -redir:sim tmp9.out equake_base.pisa_little <inp.in> inp.out
我是新來打壞的腳本。有人可以指出問題可能是什麼?謝謝。
你在哪裏/如何遞增計數器(i)? –
第一個問題是你沒有解釋你的程序如何失敗,第二個問題是你在沒有通知的情況下更改了發佈的腳本。 – jlliagre
對此我很抱歉。該程序在第二次迭代中失敗,因爲它沒有終止。 '$ cmdRun'是它卡住的那一行。 – titan