问题描述
我在名为 $stat_val_result_command
的文件中有以下命令。
我想在文件末尾添加 -xms1g
参数,使其看起来像这样:
<my command in the file> -xms1g
但是,我想在追加后运行此命令。我在一个名为“nextflow”的工作流系统中运行它。我捆绑了很多东西,包括跟随,但它不起作用。检查默认在 Bash 中运行的脚本部分:
process statisticalValidation {
input:
file stat_val_result_command from validation_results_command.flatten()
output:
file "*_${params.ticket}_statistical_validation.txt" into validation_results
script:
"""
echo " -xms1g" >> $stat_val_result_command && ```cat $stat_val_result_command```
"""
}
解决方法
最好避免附加或操作在工作目录中本地化的输入文件,因为这些文件可以并且默认情况下是原始文件的符号链接。
在您的情况下,请考虑导出 JAVA_TOOL_OPTIONS 环境变量。这可能适合您,也可能不适合您,但如果您可以控制脚本的生成方式,则可能会给您一些想法:
export JAVA_TOOL_OPTIONS="-Xms1g"
bash "${stat_val_result_command}"
此外,通常最好避免像这样本地化和运行脚本。这可能是不可避免的,但通常有更好的选择。例如,third-party scripts,就像您的 Bash 脚本可以更简单地处理:
授予这些文件的执行权限并将它们复制到
项目存储库根目录中名为 bin/
的文件夹。
Nextflow 会自动将此文件夹添加到 PATH
环境中
变量,脚本将自动在您的
管道,而无需指定调用它们的绝对路径。
这当然假设您可以控制和参数化创建 Bash 脚本的过程。