我正在尝试制作一个脚本文件,在多个文件上运行python脚本(来自QIIME管道),而不是每次都输入脚本(我有大约150个文件,还有更多文件)。
我使用虚拟机来运行ubuntu环境。
我首先使用gedit
创建文件“splitvm3.sh”此文件包含:
#!/bin/sh
# this is the script for the VM3 experiment ~/splitvm3.sh
split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual -o split_library_output001
split_libraries.py -m mappingVM3002.txt -b 0 -p -f DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output002
然后我使用了命令:
chmod +x ./splitvm3.sh
从我的文件存储目录。
最后我输入以下命令来运行脚本:
python splitvm3.sh
我收到错误消息:
SyntaxError: invalid syntax
显然它指的是我文件的第4行。
我完全缺乏了解出错的基本知识。我在2周前开始了整个ubuntu / python / QIIME的事情并自己学习了一切。我们将非常感谢每一点帮助!
的Seb
答案 0 :(得分:0)
我不知道' split_libraries.py'
似乎此脚本会写入错误消息。
应对这个"第4行"并直接在您的终端中调用它。怎么了? 你在哪里得到了' ... txt'文件?
其中一个输入文件的格式是错误还是编码错误?
答案 1 :(得分:0)
问题是您正在尝试使用python解释器运行shell脚本。正如split_libraries.py
是python脚本一样,您尝试的脚本实际上是一个shell脚本。
你几乎要做对,你只需执行这样的脚本:
sh splitvm3.sh
或者假设你有一个shebang,你也可以:
./splitvm3.sh
答案 2 :(得分:0)
我知道这是一个老问题,问题可能现在排序,但错误来自文件中的多行。
Qiime脚本可以处理多个文件,只要它们的格式正确即可。
尝试将“splitvm3.sh”文件保存为:
split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna,DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual,DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output
然后从存储.fna和.qual文件的同一目录运行:
python splitvm3.sh