当我尝试提供 --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。
谢谢, 卡鲁斯
有什么可行的解决方法吗?
https://mywiki.wooledge.org/BashFAQ/050
使用数组。
snakemake_extra=( --rerun-triggers {mtime,input,params} )
... "${snakemake_extra[@]}" ...
Bash 会展开大括号,但否则不会(例如,请参阅 Bash 中变量的大括号展开)。 解决方法是在使用变量之前扩展它:
snakemake_extra="--rerun-triggers mtime input params"