Bash функция всегда игнорирует блок else - PullRequest
0 голосов
/ 08 мая 2020

Когда я запускаю приведенный ниже код с точными двумя аргументами, блок else не выполняется.

Если я уберу блок if else из функции, все будет работать нормально.

#!/bin/bash
usage() {

if [[ $# -gt 2 || $# -lt 2 ]]; then
        echo "insufficient args"
else
        if [[ $# -eq 2 ]]; then
                echo "continuing with the script"
        fi
fi

}

usage

1 Ответ

1 голос
/ 08 мая 2020

В этой ситуации функция usage получает 0 аргументов от вызова.

Измените вызов на usage $@, который передаст аргументы командной строки функции использования.

#!/bin/bash
usage() {

if [[ $# -gt 2 || $# -lt 2 ]]; then
        echo "insufficient args"
else
        if [[ $# -eq 2 ]]; then
                echo "continuing with the script"
        fi
fi

}

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