我正在编写一个使用调用语法的 bash 脚本
脚本[选项] [目录]
为了检索选项集并解析它们,我使用了 getopts。但是我怎样才能得到 dir 参数呢?一般来说,如果我检索最后一个参数为 ${@:${#@}},它不一定是目录,它仍然可以是一个选项或它的值。
我用于 getopts 的代码:
DIR="."
RECURSIVE=
FILTER=
while getopts “hnf:” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
n)
RECURSIVE="-maxdepth 1"
;;
f)
FILTER=$OPTARG
;;
\?)
exit 1
;;
:)
exit 1
;;
esac
done
你能帮忙吗?
最佳答案
OPTIND
存储处理参数的位置。在循环之后做一个:
shift $((OPTIND-1))
现在目录在 $@
中,第一个目录在 $1
中。
关于bash:获取目录参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9859784/