我正在创建一个小程序,让用户写下他们的名字,然后继续创建一个包含他们输入名称的文件夹。我有这个:
#!/bin/bash
echo "Enter your name:"
read name
mkdir /home/mint/Desktop/$name
这工作得很好,但我想知道是否有办法验证输入,以便我的程序只接受字母表的字母。任何帮助将不胜感激。
有很多方法可以做到这一点:
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 或者从Stack Overflow开始:https://stackoverflow.com/tags/bash/info
你可以这样做:
#!/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
字母。
像这样的东西?
#!/bin/bash
echo "Enter your name:"
read name
name=$(tr -dc [:alpha:] <<<"$name" )
mkdir "/home/mint/Desktop/$name"