#!/bin/bash
#判断输入的字串是否包含标点符号
#包含标点符号返回0,不包含返回1
isIncludePunct(){
#输入的第一个参数位$1
#sed是流编辑器,s是sed的替换命令,替换源[^[:alnum:]],使用了正则表达式,代表除大小写字母和0-9数字之后取反,也就是除了大小写字符和数字之外的字符,替换目标为空,/g表示s标志结束
#实质就是将输入的字串的标点符号字串去掉了
newInput="$(echo $1 | sed 's/[^[:alnum:]]//g')"
#判断替换之后的字串和原来的字串是否相等,相等代表原来的字串本来就没有特殊字符
if [ "$newInput" = "$1" ]
then
return 1
else
return 0
fi
}
# -p选项(提示符)input:将输入的内容作为变量值赋值给input
read -p "请输入需要判断的字串" input
#if判断,当不是字符串判断的时候不需要中括号
if isIncludePunct "$input"
then
echo "包含标点符号"
exit 1
else
echo "不包含标点符号"
fi
#exit 1是程序正常退出,exit 0是程序异常退出
exit 0
运行结果: