Вы должны пробелы обратной косой черты в своем пути к смонтированному 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 ""
говорит Вам точно то же.
Это:
if [[ "$OPTARG" -eq 0 ]]
Соответствует любой строке, кроме цифр. Используйте:
if [[ "$OPTARG" == "0" ]]
Вместо этого.
Также вы можете использовать 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
Хотя проблема в вашем коде была хорошо объяснена 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
Возможно, вы также захотите обратиться к Условным конструкциям в руководстве.