Bash可选参数

问题描述 投票:-1回答:1

有人可以告诉我是否有某种方法可以检查可选参数是否跟在字符串后面,如果不是,则会出现错误消息。

我的目标是使用./nameofscript -a字符串之类的东西>>

I=0

while getopts ":a:k" opt; do
  case ${opt} in
    a ) I=1 
    string="$OPTARG"

所以我的目标是...如果用户键入./nameofscript,它将继续,因为没有传递可选参数...但是,如果用户键入./nameofscript,则必须退出程序,因为它后面没有任何字符串。用户必须输入./nameofscript-一个字符串,如果不输入,则会出现错误消息:您必须输入blablabla ...

因此,如何知道是否键入了-a /是否键入了-a并在其后跟随字符串,有什么解决方法。

有人可以告诉我是否有某种方法可以检查是否在字符串后跟可选参数,如果不是,则会出现错误消息。我的目标是制作类似./nameofscript ...

shell posix
1个回答
0
投票

[当选项字符串以冒号(":")开头时,getopts将忽略所有错误。因此,只需取出前导冒号即可。

© www.soinside.com 2019 - 2024. All rights reserved.