这是我在shell中的代码,我包括python命令:
for file in `ls $FOLDER`
do
echo "$file"
var=`python -c "from Bio import SeqIO, SeqUtils; import os; rec = SeqIO.read("**$FOLDER/$file**", 'fasta'); SeqUtils.xGC_skew(rec.seq, 220000)" `
done
我不知道如何让python识别我的文件名
您需要转义python代码中的双引号:
for file in `ls $FOLDER`
do
echo "$file"
var=`python -c "from Bio import SeqIO, SeqUtils; import os; rec = SeqIO.read("$FOLDER/$file", 'fasta'); SeqUtils.xGC_skew(rec.seq, 220000)" `
done
我看到一些常见的shell错误:
- 不要解析
ls
。使用for file in "$FOLDER"/*; ...
- 使用
$(...)
而不是`...`
——更容易阅读,更容易嵌套。参考 - 改掉使用ALLCAPS变量名的习惯,将它们保留在shell中。有一天,你会写
PATH=something
,然后想知道为什么你的脚本坏了