Я убивал себя из-за этого, пытаясь понять это, и я знаю, что это, вероятно, очень просто, поэтому надеюсь, что новая пара глаз может помочь.У меня есть сценарий оболочки Bourne (sh), который я пишу, и он принимает список целых чисел в качестве входных данных (и количество от 1 целого числа, в идеале я хотел бы принимать как положительные, так и отрицательные числа).Я пытаюсь сделать проверку ошибок для случая, если кто-то вводит что-то, кроме целого числа.Они могут ввести «1 2 3 4 5 a», и это выдаст ошибку, потому что a не является int.
У меня есть проверка на отсутствие входных данных, которая работает, и у меня есть код, который работает с самим списком целых чисел, но даже после выдачи строк он все равно попадает в мой последний блок кода.
В настоящее время у меня есть цикл for для итерации каждого элемента в списке целых чисел, а затем цикл if для выдачи сообщения об ошибке, если рассматриваемый аргумент не является целым числом.Я пробовал несколько разных версий этого, но это самая последняя, поэтому я поместил ее ниже.
for i in $@; do
if [ $i -ge 0 ] 2>/dev/null; then
echo "Invalid input: integers only."
exit 1
fi
done