Привет Я создаю систему архивации в bash с длинным и беспорядочным оператором if, который в настоящее время не работает с текущими ошибками, находящимися в последних нескольких строках с инструкцией else if. Хотя я ожидаю, что в этом случае есть и другие ошибки. Выбор переменной - это меню, которое отображается в терминале. Поэтому, если они выбирают вариант 1, пользователь должен ввести данные, которые будут записаны в файл crontab.Почему мое заявление If в Bash не работает?
if [ $choice -eq "1" ] then
echo "Enter the MINUTE"
read minute
if [ $minute -eq 0 ] then
GLOBIGNORE=*
minute="*"
echo minute
fi
echo "Enter the Hour"
read hour
if [ $hour -eq 0 ] then
GLOBIGNORE=*
hour="*"
echo hour
fi
echo "Enter the Day"
read day
if [ $day -eq 0 ] then
GLOBIGNORE=*
day="*"
echo day
fi
echo "Enter the Month"
read month
if [ $month -eq 0 ] then
GLOBIGNORE=*
month="*"
echo month
fi
echo "Enter the weekday"
read weekday
if [ $weekday -eq 0 ] then
GLOBIGNORE=*
weekday="*"
echo weekday
fi
echo $minute $hour $day $month $weekday " date > ~/testcron.log" > testcron.txt fi
elif [ $choice -eq "2" ]
then
echo "Enter the Source and Destination Locations"
fi
Пожалуйста, исправить отступ. Это должно помочь вам распознать структуру кода, например. который 'fi' принадлежит к' if'. – choroba
Опубликовать все заявление (я вижу несколько 'if'', но только один 'fi'). –
bash не питон. отступы не влияют на порядок операций. NONE ваших операторов if имеет завершающий 'fi', поэтому у вас есть одна серия глубоко вложенных операторов' if'. –