рыба не вернет указанный код состояния из функции с возвратом - PullRequest
0 голосов
/ 29 января 2019

Я использовал эту простую функцию для многократного подтверждения пользователя в других моих функциях:

function read_confirm --description 'Ask the user for confirmation' --argument prompt
    if test -z "$prompt"
        set prompt "Do you want to continue? [Y/n]: "
    end 

    while true
        read -l -P $prompt confirm
        switch $confirm
        case N n
            return 1
        case '' Y y
            return 0
        end
    end
end

В предыдущей версии это работало нормально, однако теперь, когда я установил версию 3.0.0 ,кажется, что я всегда получаю код состояния 0.

 ~ read_confirm
Do you want to continue? [Y/n]:
 ~ echo $status
0
 ~ read_confirm
Do you want to continue? [Y/n]: y
 ~ echo $status
0
 ~ read_confirm
Do you want to continue? [Y/n]: Y
 ~ echo $status
0
 ~ read_confirm
Do you want to continue? [Y/n]: n
 ~ echo $status
0
 ~ read_confirm
Do you want to continue? [Y/n]: N
 ~ echo $status
0
 ~

Сначала я подумал, что оператор case не работает, однако пользовательский ввод правильно читается, у него нет начального '\ n', он переходит к случаю' N n ', функция должным образом "завершается", однако "return 1" всегда устанавливает статус в 0, и я не могу понять, почему.API рыбы изменился?я неправильно использую его, и мне нужно переписать его?

ОБНОВЛЕНИЕ: Создан отчет об ошибках, так как это регрессия из предыдущих версий https://github.com/fish-shell/fish-shell/issues/5600

Спасибо за помощь, Стефан

1 Ответ

0 голосов
/ 30 января 2019

Это известная ошибка, которая будет исправлена ​​в следующей версии.Смотри https://github.com/fish-shell/fish-shell/issues/5513

...