【发布时间】:2018-11-04 03:22:10
【问题描述】:
我正在尝试编写一个 shell 脚本,其中的选项在每次运行中采用不同数量的值,例如
运行 1:
./myscript --input <file1> <file2> --output <folder1>
运行 2:
./myscript --input <file1> <file2> <file3> --output <folder1> <folder2>
我尝试如下使用 getopts:
while getopts ":i:o:" opt; do
case $opt in
i)
echo "treatment files are: $OPTARG" >&2
infiles="${OPTARG}"
;;
o)
echo "control files are: $OPTARG" >&2
outdir="${OPTARG}"
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
但是,我发现为“-i”选项输入可变数量的值的唯一方法是通过引号(“file1 file2”),这会阻止我/用户使用命令行的自动完成功能来提供帮助生成文件路径。此外,此选项似乎不允许我使用“--input”语法来传递选项。
有人可以帮忙吗?
非常感谢。
【问题讨论】:
标签: shell