Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将参数附加到文件中的命令,然后运行附加的命令_Bash_Nextflow - Fatal编程技术网

Bash 将参数附加到文件中的命令,然后运行附加的命令

Bash 将参数附加到文件中的命令,然后运行附加的命令,bash,nextflow,Bash,Nextflow,我在一个名为$stat\u val\u result\u command的文件中使用了以下命令。 我想在文件末尾添加-Xms1g参数,以便如下所示: <my command in the file> -Xms1g 最好避免附加或操作workdir中本地化的输入文件,因为这些文件可能是原始文件的符号链接,并且默认情况下是原始文件的符号链接 在您的情况下,考虑导出环境变量。这可能适用于您,也可能不适用于您,但如果您能够控制脚本的生成方式,则可能会给您一些想法: export JAV

我在一个名为
$stat\u val\u result\u command
的文件中使用了以下命令。 我想在文件末尾添加
-Xms1g
参数,以便如下所示:

  <my command in the file> -Xms1g

最好避免附加或操作workdir中本地化的输入文件,因为这些文件可能是原始文件的符号链接,并且默认情况下是原始文件的符号链接

在您的情况下,考虑导出环境变量。这可能适用于您,也可能不适用于您,但如果您能够控制脚本的生成方式,则可能会给您一些想法:

export JAVA_TOOL_OPTIONS="-Xms1g"
bash "${stat_val_result_command}"
另外,通常最好避免像这样本地化和运行脚本。这可能是不可避免的,但通常有更好的选择。例如,可以更简单地处理Bash脚本:

授予这些文件的执行权限,并将其复制到 项目存储库根目录中名为
bin/
的文件夹。 Nextflow将自动将此文件夹添加到
路径
环境中 变量,并且脚本将在您的 管道,无需指定调用它们的绝对路径


当然,这假设您可以控制和参数化创建Bash脚本的过程。

三重引号是什么?Bash将三个backtick与一个完全相同,只是执行起来比较慢,因为它是一个空对(打开/关闭),然后是一个包含内容的对,然后是另一个空对(打开/关闭)。所有这些对都会产生子shell,包括空的子shell。除此之外,
$(cat anything)
(或其backtick等价物)具有中讨论的错误,因为命令替换的结果与参数扩展的结果以相同的方式进行解析。如果文件是正常的unix文本文件格式,
echo“-Xms1g”>>文件
将向文件中添加新行,而不是添加到已存在的行中。这可能不重要,因为您使用文件的方式不同,但我仍然会检查文件,看看是否发生了这种情况。@Gordan我如何才能添加到同一行?添加后如何在bash中运行它?能否将该文件设置为常规shell脚本,并将
-Xms1g
作为参数传递给它(并让脚本使用例如
commandorun“$@”
传递参数)?
export JAVA_TOOL_OPTIONS="-Xms1g"
bash "${stat_val_result_command}"