我試圖自動運行程序,使用和期望腳本,但我做錯了什麼。 我有一大堆的文件在遵循這個命名約定我的當前目錄:Expect腳本:運行兩個具有相似名稱的文件
file_name-hereROI.txt
file_name-hereFR.txt
file1_name-hereROI.txt
file1_name-hereFR.txt
file_name1-hereROI.txt
file_name1-hereFR.txt
file_name-here1ROI.txt
file_name-here1FR.txt
我想這樣做是爲了在每對運行程序。因此,如果「ROI」或「FR」之前的字符串相同,則應該用水比較。 我已經寫:
1 #/usr/bin/expect
2 for f in *ROI.fasta
3 do
4 for f2 in *FR.fasta
5 do
6 fROI=$(echo $f | cut -d'ROI' -f 1)
7 f2ROI=$(echo $f2 | cut -d'FR' -f 1)
8 if [$fROI == $f2ROI]
9 then
10 spawn water f f2
11 expect "Gap opening penalty [10.0]:"
12 send "\n"
13 expect "Gap extension penalty [0.5]:"
14 send "\n"
15 expect "Output alignment"
16 send "\n"
17 close
18 fi
19 done < ls
20 done < ls
但我沒有得到很遠的。我有這個錯誤:
$ expect water.sh
wrong # args: should be "for start test next command"
while executing
"for f in *ROI.fasta"
(file "water.sh" line 2)
如果我想把-8改成-10,我怎麼能這樣做?在bash中你必須使用特殊的括號。 – Stephopolis