首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本不执行指令

Bash脚本不执行指令
EN

Stack Overflow用户
提问于 2019-07-29 01:18:46
回答 1查看 54关注 0票数 0

Bash脚本不执行指令

我已经成功地执行了AutoDock Raccoon (www.Scripps.edua)前端,它允许父程序AutoDock将成批的配体停靠到蛋白质上。

一旦Raccoon被执行,就会运行一个bash脚本RunVS.sh,在列表中每个配体的子目录中顺序执行AutoDock。问题是这个脚本失败了。

comp@AbNormal:~/Apps/raccoon/Model/Acetylcholinesterase

代码语言:javascript
复制
/Test/Results$ ./RunVS.sh
        ________________________________________________________________
  __________//___________________________/////___________________/____________
  _________/__/__________________________/____/__________________/____________
  ________/____/___________/_____________/_____/_________________/____________
  ________/____/__/_____/_/////___/////__/_____/__/////___/////__/___/________
  _______/______/_/_____/__/_____/_____/_/_____/_/_____/_/_____/_/_//_________
  _______////////_/_____/__/_____/_____/_/_____/_/_____/_/_______//_/_________
  _______/______/_/____//__/___/_/_____/_/____/__/_____/_/_____/_/___/________
  _______/______/__////_/___///___/////__/////____/////___/////__/____/_______
        ________________________________________________________________
                                   ______
                                  /      \
                                 /        \
                                /          \   Raccoon
                                \    /\    /    Virtual
                                 \  /  \  /      Screening
                                  \/ /\ \/        Generator
                                   /\  \
                                 /\  \__\    version 1.0f
                                /  \__\
                               /____\

                 == Press ENTER to start the calculation ==

Docking Pralidoxime_apo-1acl ==================================
Running AutoDock...
[Removing grid maps]
         .
         .
         .
Docking Tabun_apo-1acl ==================================
Running AutoDock...
[Removing grid maps]
Calculation completed.

显然,每个子目录中的运行脚本run.sh都有问题。

代码语言:javascript
复制
#!/bin/bash
# Generated by AutoDock Raccoon
#
#
# Specify here the paths for the binaries, if necessary
# autodock = ''

    echo Running AutoDock...
    autodock4 -p "Acetylcholine_apo-1acl.dpf" -l "Acetylcholine_apo-1acl.dlg" 1>/dev/null 2>/dev/null

我可以在终端的每个子目录中运行以autodock4开头的代码行,但这相当于削弱了raccoon值。

我的解决方案是:

代码语言:javascript
复制
for d in $(cat ligand.list)
do
    echo $d'_apo-1acl'
    /home/comp/Apps/Autodock/autodock4 -p "$d'_apo-1acl'".dpf -l "$d'_apo-1acl'".dlg
done

这将导致:

代码语言:javascript
复制
./Run.ligand.list.sh
Acetylcholine_apo-1acl

/home/comp/Apps/Autodock/autodock4: can't find or open parameter file Acetylcholine'_apo-1acl'.dpf

/home/comp/Apps/Autodock/autodock4: Unsuccessful Completion.

      .
      .
      .

用于ligand.list的其余部分。

我已经尝试了不同的引号组合是脚本与相同的结果。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-07-29 13:53:59

您至少有一个quoting问题- "$d'_apo-1acl'".dpf解析为d变量的内容,后跟一个单引号,然后是"_apo-1acl“,然后是另一个单引号。解决方案:

代码语言:javascript
复制
"${d}_apo-1acl.dpf"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57243270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档