使用 Bash 脚本中的子 shell

使用 Bash 脚本中的子 shell

我正在使用软件(QIIME)它使用自己的子 shell 来运行命令:

您不再需要在 QIIME 命令前输入“macqiime”!相反,您只需在启动新的终端会话时输入一次“macqiime”。这将启动一个带有 QIIME 环境变量的新子 shell。

完成后,您可以运行所有想要的 qiime 命令,而无需“macqiime”命令。

我正在开发一个 bash 脚本,它可以自动启动作业,并应自动通过 QIIME 环境运行脚本。我知道如何从命令行手动执行此操作(如上所述);但是我不知道如何从 bash 脚本自动执行此操作。

有人能帮忙吗?谢谢!

编辑:

你可以通过阅读“高级 MacQIIME 黑客攻击

答案1

macqiime您想使用作为解释器来运行脚本。
您可以在#!第一行使用 来指定。

以此作为第一行(使用真实路径)启动您的脚本:

#!/path/to/macqiime

如果不清楚PATH程序中的位置,但它在PATH,您可以使用

#!env macqiime

作为第一行 - 它必须是真正的第一行,没有空行,并且之前没有注释行。

附录

事实证明,该命令macqiime无法像上面描述的那样使用,请参阅下面的用法。但它不能这样工作似乎没有其他原因,只是因为它是一个非常小的脚本,没有实现从 stdin 读取。

因此,在一般情况下,对于其他行为如问题中描述的程序,上述答案应该适用。

在特殊情况下macqiime文档解释了如何在 shell 解释器风格中使用该软件:

你必须用类似这样的内容编写自己的脚本:

#!/bin/bash
source /macqiime/configs/bash_profile.txt
align_seqs.py -i "$@"

如果调用了该脚本,qiime_script那么您可以从命令行调用它:qiime_script options其中选项传递给$1,$2等。

相关内容