shell整理(29)===判断用户输入可不可以作为变量

发布时间:2025-04-16 20:03

阅读用户晒图可以直观判断实物质量 #生活知识# #购物技巧# #购物平台评价#

原创

©著作权归作者所有:来自51CTO博客作者大雪儿的原创作品,谢绝转载,否则将追究法律责任

(一)题目:

接受一个用户输入,判断这个输入是否可以作为变量

可以作为变量的条件

(1)大小写字母都可以

(2)字母中间可以有数字,但是不能以数字开头

(3)特殊字符除了“_ ”其他都不可以作为变量

例如:

[root@localhost hushuai]# bash  

Input:1dsf

Name is not

[root@localhost hushuai]# bash  

Input:=ewr

Name is not

[root@localhost hushuai]# bash  

Input:_

Name is ok

[root@localhost hushuai]# bash  

Input:_123

Name is ok

[root@localhost hushuai]# 

shell 代码如下:

版本1:

#!/bin/bash read -p "Input:" a b=`echo $a | sed -r 's/[a-zA-Z0-9_]/a/g'|grep -o 'a'|wc -l` c=${#a} d=`echo $a |cut -c1` echo $d | grep '[0-9]' &>/dev/null if [ $? -eq 0 ];then echo $a is not && exit 0 fi if [ $c -eq $b ];then echo $a is ok else echo $a is not fi1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

版本一替换后还要统计个数,很麻烦,我们直接替换成空不就好了吗?在版本(一)基础上的修改

版本(二)

shell 代码如下:

#!/bin/bash read -p "Input:" a d=`echo $a |cut -c1` echo $d | grep '[0-9]' &>/dev/null if [ $? -eq 0 ];then echo $a is not && exit 0 fi b=`echo $a | sed -r 's/[a-zA-Z_0-9]/ /g'` if [ -z $b ];then echo $a is ok else echo $a is not fi1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

这是一种方法因为写了正则,所以比较简单,其实我们还可以一个字母一个字母来比较

例如:版本(三)

shell代码如下:

#!/bin/bash read -p "Plz Input A name:" n s=${#n} start=`echo $n |cut -c1` check=`echo $start | grep -c '[a-zA-Z_]'` if [ $check -ne 1 ];then echo "Name not ok" && exit 1 fi for i in `seq 2 $s` do xxoo=`echo $n |cut -c $i` check=`echo $xxoo | grep -c '[a-zA-Z_0-9]'` if [ $check -ne 1 ];then echo "Name not ok" && exit 1 fi done echo "Name is ok"1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.

上面所有的一切只是提供一种思路和方法;一定要学会在一个问题上多研究研究,其实如果你知道一个命令的话还有另外一种方法

命令:eval

版本(四):

#!/bin/bash read -p "Input:" n eval $n=1 &>/dev/null if [ $? -eq 0 ];then echo "Name is ok" else echo "Name is not" fi1.2.3.4.5.6.7.8.9.10. 收藏 评论 举报

相关文章

网址:shell整理(29)===判断用户输入可不可以作为变量 https://www.yuejiaxmz.com/news/view/870599

相关内容

shell整理(31)===判断平年闰年和嵌套循环的小例子
:循环提示用户输入商品信息(商品名称,价格),并将输入内容追加到列表中(如果输入N或n则停止循环),输入结束打印商品列表如果用户输入的信息已经存在,则提示用户所输内容已存在,不再重复添加
python 变量,数据类型,用户输入输出,流程控制,循环
python可以不对变量初始化
用shell+crontab定时清理日志
shell整理(35)====模拟用户登录的打印菜单脚本
打造高效的工作环境 – SHELL 篇
linux shell 脚本
shell 整理(36)===写斐波那契数列
shell 中的EOF使用

随便看看