用于脚本和输入参数的bash
问题描述:
任何人都可以帮助我修改脚本。因为它不起作用。这里有三个脚本。 1)pb.sh,使用delphicpp_release软件读取1brs.ab.sh并输出为1brs.ab.out用于脚本和输入参数的bash
2)1brs.ab.sh,用于输入参数,其中a.sh(另一个用于蛋白质结构的脚本),chramm.siz,charmm.crg是用于运行delphicpp_release软件的参数剩余部分的原子大小和电荷等文件。
3)a.sh,用于读取几个蛋白质结构,它们将位于同一个目录中。
我script_1 = pb.sh:
./delphicpp_release 1brs.ab.sh >1brs.ab.out
echo PB-Energy-AB = $(grep -oP '(?<=Energy> Corrected:).*' 1brs.ab.out) >>PB-energy.dat
cat PB-energy.dat
script_2 = 1brs.ab.sh:
in(pdb,file="a.sh")
in(siz,file="charmm.siz")
in(crg,file="charmm.crg")
perfil=70
scale=2.0
indi=4
exdi=80.0
prbrad=1.4
salt=0.15
bndcon=2
maxc=0.0001
linit=800
energy(s)
script_3 = a.sh:
for i in $(seq 90000 20 90040); do
$i.pdb
done
答
正如我们不” t知道software
是什么,有点像
for ((i=90000;i<=100000;i+=20)); do
./software << " DATA_END" > 1brs.$i.a.out
scale=2.0
in(pdb,file="../$i.ab.pdb")
in(siz,file="charmm.siz")
in(crg,file="charmm.crg")
indi=z
exdi=x
prbrad=y
DATA_END
echo Energy-A = $(grep -oP '(?<=Energy>:).*' 1brs.$i.a.out) >>PB-energy.dat
done
更POSIX外壳兼容的版本
i=90000
while ((i<=100000)); do
...
((i+=20));
done
编辑:无定界符
{
echo 'scale=2.0'
echo 'in(pdb,file="../'"$i"'.ab.pdb")'
echo 'in(siz,file="charmm.siz")'
echo 'in(crg,file="charmm.crg")'
echo 'indi=z'
echo 'exdi=x'
echo 'prbrad=y'
} > $i.ab.sh
./software <$i.ab.sh >$i.ab.out
但问题是改变了我不知道去了解它。
我不认为人们可以从你的问题中推断出你正在努力实现的目标2)你到目前为止所做的事情。另外,它看起来不像我的bash脚本。例如什么是'(crg,file =“charmm.crg”)' – sjsam
1)我正在尝试使用测量我的系统在参数文件(a.para,b.para)中提及的绑定能量的软件。 )90000.ab.pdb,90020.ab.pdb .... 2)charmm.siz,charmm.crg是输入参数文件。 3)在我的脚本中,所有内容都是相同的,只有90000.ab.pdb,90020.ab.pdb,90040.ab.pdb .... 100000.ab.pdb将被输入。 – parash