В bash-скрипте мне нужно убедиться, что пользователь вводит реальные цифры, поэтому я подумал, что самый простой способ убедиться в этом - реализовать case
:
case $1 in
[0-9]*)
echo "It's ok"
;;
*)
echo "Ain't good!"
exit 1
;;
esac
Но яС трудом справляюсь с файловым перетаскиванием, потому что я не могу найти способ требовать, чтобы значение в $ 1 было только числовым.Или другой способ мог бы исключить все альтернативы:
case $1 in
-*)
echo "Can't be negative"
exit 1
;;
+*)
echo "Must be unsigned"
exit 1
;;
*[a-zA-z]*)
echo "Can't contain letters"
exit 1
;;
esac
Дело в том, что в этом случае я должен иметь возможность блокировать "специальные" символы, как!?^ = () и так далее ... Я не знаю, как этого добиться.Пожалуйста, кто-нибудь подскажет?