如何使用Shell查找输入的变量中是否存在指定数组内的字符?

例如:定义属组list1=('~''!''@''#''$')用户输入了一个字符串为ex@mple怎么通过shell脚本判断用户输入的这个字符串中是否包含list1数组中的... 例如:
定义属组
list1=('~' '!' '@' '#' '$')
用户输入了一个字符串为ex@mple
怎么通过shell脚本判断用户输入的这个字符串中是否包含list1数组中的某个字符?
展开
 我来答
bdjfxue26
2017-08-19 · TA获得超过105个赞
知道答主
回答量:47
采纳率:100%
帮助的人:21.4万
展开全部
list1=('~' '!' '@' '#' '$')
str="ex@mple"
spec_str=$(echo ${list1[*]} | sed 's/\ //g')
printf "$str" | awk -v spec_str=$spec_str '{
for (i = 1; i <= length(spec_str); ++i) {
pos = index($0, substr(spec_str, i, 1))
if (pos != 0) {
printf "include char %s at %s\n", substr(spec_str, i, 1), pos
exit
}
}
}'

输出如下,具体需求你自己根据需要调整:

include char @ at 3

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式