基础操作

# 强制清除文件
rm -f name.txt # 强制清除文件
# 文本检索
ligand_charge=$(grep $pdbid /home/zsl/ligand.txt | awk "{print $2}") #|前检索出的行,|后输出第二列

# 批处理操作
cat batch.txt | parallel --env _ --joblog 02.log --retries 3 --jobs 16 process_pdbid {} #批处理操作(base txt 文档)
find "/home/tmp/zsl/data" -maxdepth 1 -type d -name "GID*" | sort | while read dir; do
   pdbid=$(basename"$dir")
   echo "$pdbid"
done | parallel --joblog 02.log --retries 3 --jobs 16 01_ligand_process{} # 批处理操作(base find文件夹名称检索)

# 调用bash文件
cd /home/test
chmod +x 02_protein_process.sh #增加权限
./02_protein_process.sh #直接运行

IF语句

if [[ $? -eq 0]]; then
    gmx editconf -f ${pdbid}_protein.gro -o ${pdbid}_protein_H.pdb -nobackup > /dev/null 2>&1 #gro 转化为pdb文件,现在已经去掉了H
    python $base_directory/02_protein_process/0202_addchain.py\
        --pdbfile ${pdbid}_protein_H.pdb \
        --pdbid $pdbid\
        --outdir $outdir #结束不需要反斜杠
else
    echo "${pdbid} pdb2gmx failed. Check pdb2gmx.out for details."
    echo ${pdbid} >> $base_directory/02_protein_process/nonstandard_residue.txt
fi   

function defination

02_protein_process() {
    # defination
    base_directory=$(pwd)#当前文件夹
    local pdbfile="${base_directory}/data/$pdbid/protein/${pdbid}_protein_0_fixed.pdb"
    
    # action
    mkdir -p $outdir
    cd $outdir
    
    # python
    python $base_directory/0201_dump_protein.py\
        --pdbfile $pdbfile\
        --ligandfile $ligandfile\
        --pdbid $pdbid\
        --outdir $outdir
}
# function 调用
export -f 02_protein_process #将函数导入到shell环境中