我对脚本没有太多经验。
我有一个目录,其中包含一组需要用程序分析的*.phylip
文件。我想自动化这个任务。我认为一个loop bash shell脚本是合适的,尽管我可能错了。
如果我要在一个.phylip
文件上手动执行分析,我将在终端中使用以下命令:
./raxmlHPC-SSE3 -m GTRCAT -y -s uce-5.phylip --print-identical-sequences -p 12345 -n uce-5_result
对于bash shell脚本,我认为它接近于:
#!/bin/sh
for i in $( ls ); do
./raxmlHPC-SSE3 -m GTRCAT -y -s uce-5.phylip --print-identical-sequences -p 12345 -n test_5 $i
done
我知道但不知道如何解决的问题是-s选项,它指定输入phylip文件。对如何修改脚本来完成我需要的工作有什么建议吗?
最佳答案
请尝试以下代码:
#!/bin/bash
for i in *.phylip
do
./raxmlHPC-SSE3 -m GTRCAT -y -s "$i" --print-identical-sequences -p 12345 -n ${i%.phylip}_result
done
-s
选项将被传递给$i
,该选项的文件名在当前目录中具有.phylip
扩展名。${i%.phylip}_result
将.phylip
扩展替换为_result
,我想这是您所期望的。(参考:Parameter Substitution)