在shell脚本命令中解析参数然后验证它的最佳方法是什么?
例如bash someScript.sh -p <some_path> -o <some_other_param> -i (User forget to provide value)
。
如何解析所有这些参数,当用户忘记输入某些参数或此参数的值时显示一些错误信息并终止执行脚本?
答案 0 :(得分:4)
这个网站上有很多例子,但是还有一个例子:
#!/usr/bin/env bash
p_set=false
o_set=false
i_set=false
while getopts p:o:i: OPT; do
case "${OPT}" in
p)
p_set=true
some_path=${OPTARG}
;;
o)
o_set=true
some_other_param=${OPTARG}
;;
i)
i_set=true
# Process ${OPTARG} or report error if it's not provided
;;
esac
done
if ! $i_set ; then
echo "-i must be provided"
fi
答案 1 :(得分:0)
搜索getopts
的手册页。你很容易实现它。
答案 2 :(得分:0)
当然,man
页面始终是一个很好的资源。但网上也有很好的例子。在处理getopts
时,我总是提到http://mywiki.wooledge.org/BashFAQ/035。几乎所有你想知道的东西都可以在那里找到。