我試圖在此論壇和其他論壇上找到答案。以下是應該在for循環中運行一系列命令的bash腳本。我正在閱讀文件的2列。第一列有文件名列表(FARR),第二列有一個參數 - 處理中使用的數字(NARR)。它將運行FARR中每個文件的命令集,並在「do」後面的命令中使用文件名和參數。除了$ {NARR [$ N]}不會將參數添加到該行的末尾外,所有內容都可以正常工作。此階段的參數爲空。 使用echo $ NARR調出完整列表。所以數據在那裏... 任何幫助將不勝感激。將變量作爲索引傳遞給bash數組
#!/bin/bash
DIR='gauss_data/'
declare -i N=0
FARR=$(cat $DIR'all.dat' | awk '{if (NR!=1) print $1}')
NARR=$(cat $DIR'all.dat' | awk '{if (NR!=1) print $2}')
for f in $FARR;
do
./gauss_and_noise.py -i $DIR$f -o $DIR$f'.out' -d --save $DIR$f'.out.plot.png' --n0 ${NARR[$N]}
let "N++"
done
你似乎熟悉Python。如果我是你,我會用Python重寫這個bash腳本。 – piokuc 2013-02-24 00:21:34
**提示:**在調試[tag:bash]腳本時,在shebang行下面添加'set -x'是非常有幫助的。 – Johnsyweb 2013-02-24 00:23:32
我本來可以在python中做到這一點,但我自己教自己bash腳本,這似乎是一個很好的候選人。 – 2013-02-24 07:57:37