我正在制作一个小程序,允许用户输入其名称,然后继续使用其键入的名称创建一个文件夹。我有这个:
#!/bin/bash
echo "Enter your name:"
read name
mkdir /home/mint/Desktop/$name
这工作得很好,但我想知道是否有一种方法可以验证输入,以便我的程序仅接受字母。任何帮助将不胜感激。
答案 0 :(得分:2)
有很多方法可以做到这一点:
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
答案 1 :(得分:0)
像这样吗?
#!/bin/bash
echo "Enter your name:"
read name
name=$(tr -dc [:alpha:] <<<"$name" )
mkdir "/home/mint/Desktop/$name"
答案 2 :(得分:0)
您可以这样做:
#!/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
字母。