如何传递此Shell脚本的路径?
这个名为如何传递此Shell脚本的路径?,shell,command-line,command,command-line-arguments,Shell,Command Line,Command,Command Line Arguments,这个名为prepareFastaRef.command的小Shell脚本应该接收我作为参数给出的文件名,根据它生成路径,然后在该文件上运行命令。它看起来像: #!/bin/bash REF="~/Dropbox/phd/fastarefs/$1" echo "$REF" samtools faidx "$REF" 我使用以下命令行运行它: prepareFastaRef.command test.fa 但它似乎无法找到该文件: [E::fai_build3_core]无法打开我的文件 ~
prepareFastaRef.command
的小Shell脚本应该接收我作为参数给出的文件名,根据它生成路径,然后在该文件上运行命令。它看起来像:
#!/bin/bash
REF="~/Dropbox/phd/fastarefs/$1"
echo "$REF"
samtools faidx "$REF"
我使用以下命令行运行它:
prepareFastaRef.command test.fa
但它似乎无法找到该文件:
[E::fai_build3_core]无法打开我的文件
~/Dropbox/phd/fastarefs/test.fa
这个问题并不特定于程序samtools
,因为我与其他人有相同的问题。我可以100%确认文件test.fa
在那里
我感到困惑的是,仅此命令就可以完美地工作:
samtools faidx ~/Dropbox/phd/fastarefs/off_aa1.fa
因此,如何从Shell脚本中传递路径似乎是一个问题
我遗漏了什么?重复:在作业中使用此选项:
REF=~/Dropbox/phd/fastarefs/“$1”
(这里引用的不是严格需要的,但通常是良好的实践)。要诊断类似的问题,您可以使用set-x
运行脚本,您会看到~
没有得到扩展。或者会告诉您,也