首页 > 解决方案 > 如何传递此 Shell 脚本的路径?

问题描述

这个名为的小 Shell 脚本prepareFastaRef.command应该接收我提供的文件名作为参数,根据它生成路径,然后在该文件上运行命令。看起来像:

#!/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 脚本中传递路径似乎是一个问题。

我错过了什么?

标签: shellcommand-linecommandcommand-line-arguments

解决方案


推荐阅读