Bash необязательный аргумент - PullRequest
0 голосов
/ 18 марта 2020

может кто-нибудь сказать мне, если есть какой-то способ проверить, сопровождается ли необязательный аргумент строкой, и если нет, то будет сообщение об ошибке.

Моя цель - получить что-то вроде ./ nameofscript -a строка

I=0

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

Поэтому моя цель состоит в том ... если пользовательский тип ./nameofscript будет продолжен, поскольку не был передан необязательный аргумент ... но если пользователь вводит ./nameofscript -a программа имеет чтобы выйти, потому что не было никакой строки за ним. Пользователь должен напечатать ./nameofscript -a строку, и если он этого не сделает, то появится сообщение об ошибке, говорящее: вам нужно набрать что-нибудь, blablabla ...

Так есть ли решение, как узнать, был ли -a набрал / if -a был напечатан и сопровождается строкой.

1 Ответ

1 голос
/ 19 марта 2020

Когда строка параметров начинается с двоеточия (":"), тогда getopts игнорирует все ошибки. Так что, просто убери ведущую толстую кишку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...