【发布时间】:2022-07-24 17:58:24
【问题描述】:
我是 bash 的新手,在阅读并尝试了很多关于如何解析参数的内容之后,我无法实现我真正想做的事情,我想解析可选参数而不是可选参数。更具体地说,我想解析 3 个参数,第一个(fastaq 文件)第二个(第二个可选的 fastaq 文件)第三个参数,它将是一个目录。
my_script.sh -f1 file1.fasta --f2 file2.fasta -d/home/folder1/folder2
或
my_script.sh -f1 file1.fasta -d /home/folder1/folder2
我尝试了很多方法,但我不知道如何让程序识别何时有两个 fasta 文件和一个目录,以及何时只有一个 fasta 文件和一个目录。
有了这个参数,我想将它们保存在变量中,因为它们稍后会被第三方使用。
我试过这个:
for i in "$@"; do
case $i in
-f1=|-fasta1=)
FASTA1="${i#=}"
shift # past argument=value
;;
-d) DIRECTORY=$2
shift 2
;;
-d=|-directory=) DIRECTORY="${i#=}"
shift # past argument=value
;;
--f2=|-fasta2=) FASTA2="${i#*=}"
shift # past argument=value
;;
*)
;;
esac
done
但我刚刚得到这个
scripts_my_first_NGS]$ ./run.sh -f1 fasta.fasta -d /home/folder1
FASTA1 =
DIRECTORY =
FASTA2 =
【问题讨论】: