我正在尝试运行一个由谷歌发布的docker中的脚本。我使用的命令将一些数据文件挂载到docker的一个名为'/input‘的文件中(在docker内部)。当我运行脚本时,它告诉我它找不到输入文件。但是,我使用了-v标志,并且我运行了一个脚本来确保输入文件在那里(在docker中)。所以总而言之-当我运行
find /input -name "*.fasta"它输出:
/input/ucsc.hg19.chr20.unittest.fasta,但当我运行脚本时,它会显示
./dv-quick-start: 19: ./dv-quick-start: --ref=/input/ucsc.hg19.chr20.unittest.fasta: not found完整的脚本:
#!/bin/sh
BIN_VERSION="1.0.0"
INPUT_DIR="${PWD}/quickstart-testdata"
DATA_HTTP_DIR="https://storage.googleapis.com/deepvariant/quickstart-testdata"
OUTPUT_DIR="${PWD}/quickstart-output"
sudo docker run \
-v "${INPUT_DIR}":"/input" \
-v "${OUTPUT_DIR}":"/output" \
google/deepvariant:"${BIN_VERSION}" \
find /input -name "*.fasta"
sudo docker run \
-v "${INPUT_DIR}":"/input" \
-v "${OUTPUT_DIR}":"/output" \
google/deepvariant:"${BIN_VERSION}" \
/opt/deepvariant/bin/run_deepvariant \
--model_type=WGS \ **Replace this string with exactly one of the following [WGS,WES,PACBIO,HYBRID_PACBIO_ILLUMINA]**
--ref=/input/ucsc.hg19.chr20.unittest.fasta \
--reads=/input/NA12878_S1.chr20.10_10p1mb.bam \
--regions "chr20:10,000,000-10,010,000" \
--output_vcf=/output/output.vcf.gz \
--output_gvcf=/output/output.g.vcf.gz \
--intermediate_results_dir /output/intermediate_results_dir \ **This flag is optional. Set to keep the intermediate results.完整输出:
/input/ucsc.hg19.chr20.unittest.fasta
--ref is required.
Pass --helpshort or --helpfull to see help on flags.
./dv-quick-start: 19: ./dv-quick-start: --ref=/input/ucsc.hg19.chr20.unittest.fasta: not found我觉得有一些误会,我非常感谢任何人的帮助。如果需要更多信息来回答这个问题,请让我知道。
发布于 2020-09-23 22:24:49
您的shell脚本中有一些无关紧要的文本,这会导致问题。删除"replace this string“和"this flag is optional”文本以及它们前面的所有空格,使\成为这些行的最后一个字符。
在shell脚本中,您可以使用\将命令分成多行。但是,\必须是该行中的最后一个字符;如果不是,它将转义它后面的字符。
# one line: ls -al $HOME
ls -al \
$HOME
# two lines: ls -al " " more text here; $HOME
ls -al \ more text here
$HOME在您的示例中,您将一些解释性文本留在
sudo docker run \
...\
--model_type=WGS \ **Replace this string with exactly one of the following [WGS,WES,PACBIO,HYBRID_PACBIO_ILLUMINA]**
# This is seen as a separate command
--ref=/input/ucsc.hg19.chr20.unittest.fasta \
...因为“替换这个字符串...”文本使\不是该行的绝对最后一个字符,它会导致shell中断命令。然后,您将获得两个命令,一个不带--ref选项的docker run命令,以及一个尝试将--ref=...作为单独命令运行的命令;这与您得到的两个错误相对应。
https://stackoverflow.com/questions/64021321
复制相似问题