Bash Подтвердить ввод пользователя - PullRequest
0 голосов
/ 22 марта 2019

Я делаю небольшую программу, которая позволяет пользователю написать свое имя, а затем приступает к созданию папки с именем, которое они набрали. У меня есть это:

#!/bin/bash
echo "Enter your name:"
read name
mkdir /home/mint/Desktop/$name

Это прекрасно работает, но мне было интересно, есть ли способ проверить ввод, чтобы моя программа принимала только буквы алфавита. Любая помощь будет оценена.

Ответы [ 3 ]

2 голосов
/ 22 марта 2019

Есть много способов сделать это:

while true; do
    read -p "Enter your name: " name
    case "$name" in
        *[^A-Za-z]*) echo "Only letters are allowed" ;;
        *) break ;;
    esac
done
mkdir ~/Desktop/"$name"

Вы хотите найти учебник. Здесь есть один: http://mywiki.wooledge.org/EnglishFrontPage
Или начните здесь с переполнения стека: https://stackoverflow.com/tags/bash/info

0 голосов
/ 22 марта 2019

Вы можете сделать это:

#!/bin/bash
echo "Enter your name:"
read name
if [[ "$name" =~ ^[a-zA-Z]+$ ]]; then
  echo "Creating directory: /home/mint/Desktop/$name"
  mkdir /home/mint/Desktop/$name
else
  echo "Your directory name may only use letters. Please try again."
fi

Это использует регулярное выражение, которое допускает только строчные a-z и заглавные A-Z буквы.

0 голосов
/ 22 марта 2019

Как то так?

#!/bin/bash
echo "Enter your name:"
read name
name=$(tr -dc [:alpha:] <<<"$name" )
mkdir "/home/mint/Desktop/$name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...