1

这是确切的命令

bcftools norm -f /path/hg19/ucsc.hg19.fasta -c s ./user1.vcf -o ../fixed/user2.vcf

当我直接在 shell 中运行它时,它工作正常。
当我将它放入 bash 脚本时,它失败了

错误信息来自 bcftools 本身

[主要] 无法识别的命令。

脚本以 ascii 编码:

#!/bin/bash
bcftools norm -f /path/hg19/ucsc.hg19.fasta -c s ./user1.vcf -o ../fixed/user2.vcf

因此,当 bcftools 直接从提示接收但不在脚本内时,它会接受参数。就像提示符和脚本中的空格的解释方式不同

4

1 回答 1

1

这是完整的错误信息吗?通常在“无法识别的命令”之后,它会给出无法识别的命令。查看 C 源代码:

fprintf(stderr, "[E::%s] unrecognized command '%s'\n", __func__, argv[1]); 

所以单引号内应该有一些东西 -argv[1]在代码中。

网络聊天中出现此消息的最常见原因是某些命令在早期版本中不可用bcftools。那么,您是否安装了多个版本bcftools

OP 的评论(上图)确认别名指的是早期版本。

于 2016-07-20T17:28:06.337 回答