【发布时间】:2015-10-30 21:42:06
【问题描述】:
我有一个带有几个参数的函数。例如:
makeUser{
login
email
password}
我想制作像-l|--login、-e|--email 和-p|--password 这样的标志,但我不知道怎么做。
它的示例应该类似于下面的代码:
./script.sh --mode makeUser --login test --email test@test.com -p testxx
我怎样才能达到这个结果?我只知道如何使用 getopts(短标志)。
它应该看起来像下面的代码吗?
while true ; do
case "$1" in
-m|--mode)
makeUser)
case "$2" in
-l|--login)
makeUser "$OPTARG"
case "$3" in
-e|--email)
makeUser "$OPTARG"
case "$4" in
-p|--password)
makeUser "$OPTARG"
exit $?
esac ;;
exit $?
esac ;;
exit $?
esac ;;
makeProject)...
makeSite)...
exit $?
esac ;;
done
【问题讨论】:
-
嗯,所有的选项都应该在同一个缩进级别。
-
你能回答并给我看吗?前缀(-l|--login、-e|--email、-p|--password)呢?
-
这些选项是否有合理的默认值?如果不是,您应该将它们保留为位置参数,而不是选项。如果您只想要描述性的选项,您可以要求
login=test email=test@example.com password=testxx形式的参数并在您的脚本中解析它们。 (这很容易做到;我可以发布带有详细信息的答案。) -
他们应该坚守岗位的重要原因之一。例如我有方法:assignProject,我需要变量:用户+项目+访问级别,还有一个方法makeUser,我需要登录名+电子邮件+密码。如果您可以在答案中发布一些包含详细信息的代码,我将不胜感激!谢谢!!
标签: bash shell getopt getopts getopt-long