Действительно ли возможно выполнить следующий случай PS3 от предыдущего случая?

Скажем, у меня есть сценарий как это:

#!/bin/bash
PS3='Select option: '
options=("Option one" "Option two")
select opt in "${options[@]}"
do
    case $opt in
    "Option one")
    # few lines of code
    if [ "check that code did everything it was supposed to do" ]
        then
        echo "Completed"
        else
        echo "Something went wrong"
    fi
    ;;

    "Option two")
    # more code
    ;;
    esac
done

Теперь это возможный изменить строку echo "Something went wrong" управлять, чтобы немедленно работал Option two не показывая меню PS3 снова?

2
задан 1 January 2017 в 23:11

1 ответ

То, что Вы ищете, называют, "проваливаются", и в ударе case операторы, проваливаются, сделан с помощью ;& вместо ;;. Однако Вы не можете условно провалиться (то есть, Вы не можете вставить ;& посреди if блок). Я предлагаю, чтобы Вы всегда проваливались, и continue если код, выполненный успешно:

case $opt in
"Option one")
# few lines of code
if [ "check that code did everything it was supposed to do" ]
then
    echo "Completed"
    continue
else
    echo "Something went wrong"
fi
;&

"Option two")
# more code
;;
esac
3
ответ дан 2 December 2019 в 02:48

Другие вопросы по тегам:

Похожие вопросы: