Обработка Да/Нет Ответ от Пользователя Bash

Вы должны пробелы обратной косой черты в своем пути к смонтированному Red Hat DVD. Это должно быть:

createrepo /media/RHEL_5.6\ i386\ DVD/Server

вместо Вашего

createrepo /media/RHEL_5.6 i386 DVD/Server

И

Options Error: Error Parsing 'file:///media/RHEL_5.6 i386 DVD/Server/ URL must be http, ftp, file or https not ""

говорит Вам точно то же.

11
15.03.2014, 18:09
3 ответа

Это:

if [[ "$OPTARG" -eq 0 ]] 

Соответствует любой строке, кроме цифр. Используйте:

if [[ "$OPTARG" == "0" ]] 

Вместо этого.

10
27.01.2020, 19:57

Также вы можете использовать case

read -p 'Do you want to Continue (yes/no?): ' 
case $REPLY in
       [yY]|[yY][eE][sS]) echo Accept             ;;
           [nN]|[nN][oO]) echo Decline            ;;
                       *) echo "Invalid argument" ;;
esac
6
27.01.2020, 19:57

Хотя проблема в вашем коде была хорошо объяснена goldilocks, я не могу удержаться и не сказать, что ваш код неоправданно длинный. Вы могли бы значительно упростить его.

Следующий код эквивалентен желаемому:

echo User passed in $1
if [[ "$1" == [nN0]* ]]; then      # First argument starts with either n, N, or 0
    echo Decline
elif [[ "$1" == [yY1]* ]]; then    # First argument starts with either y, Y, or 1
    echo Accept
else
    echo Invalid argument
fi

Возможно, вы также захотите обратиться к Условным конструкциям в руководстве.

8
27.01.2020, 19:57

Теги

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