snakemake:--rerun-triggers 标志和 bash 变量出现问题

问题描述 投票:0回答:2

当我尝试提供 --rerun-triggers 标志作为 bash 变量时遇到问题。

我的命令是

snakemake $snakemake_extra -pr --snakefile Snakefile --configfile config.yaml -c 20 -n

snakemake_extra 是一个 bash 变量,定义为

snakemake_extra="--rerun-triggers {mtime,input,params}"

我收到以下错误:

snakemake:错误:参数 --rerun-triggers:无效选择:'{mtime,input,params}'(从'mtime','params','input','software-env','code'中选择)

问题似乎是snakemake(?)在

{}
之前和之后添加了单引号。

当我直接插入 --rerun-triggers 标志(没有 bash 变量)时,它工作正常。然而,我需要 bash 变量,并且也不能使用 Snakemake 配置文件 yaml。

有什么可行的解决方法吗?

我使用的是snakemake版本7.12.1。

谢谢, 卡鲁斯

bash snakemake
2个回答
0
投票

有什么可行的解决方法吗?

https://mywiki.wooledge.org/BashFAQ/050

使用数组。

snakemake_extra=( --rerun-triggers {mtime,input,params} )
... "${snakemake_extra[@]}" ...

0
投票
当您在命令行上提供大括号而不将它们嵌入到变量中时,

Bash 会展开大括号,但否则不会(例如,请参阅 Bash 中变量的大括号展开)。 解决方法是在使用变量之前扩展它:

snakemake_extra="--rerun-triggers mtime input params"
© www.soinside.com 2019 - 2024. All rights reserved.