shell整理(29)===判断用户输入可不可以作为变量
2017-09-25 14:36
316 查看
(一)题目:
接受一个用户输入,判断这个输入是否可以作为变量
可以作为变量的条件
(1)大小写字母都可以
(2)字母中间可以有数字,但是不能以数字开头
(3)特殊字符除了“_ ”其他都不可以作为变量
例如:
[root@localhost hushuai]# bash 22.sh
Input:1dsf
Name is not
[root@localhost hushuai]# bash 22.sh
Input:=ewr
Name is not
[root@localhost hushuai]# bash 22.sh
Input:_
Name is ok
[root@localhost hushuai]# bash 22.sh
Input:_123
Name is ok
[root@localhost hushuai]#
shell 代码如下:
版本1:
版本一替换后还要统计个数,很麻烦,我们直接替换成空不就好了吗?在版本(一)基础上的修改
版本(二)
shell 代码如下:
这是一种方法因为写了正则,所以比较简单,其实我们还可以一个字母一个字母来比较
例如:版本(三)
shell代码如下:
命令:eval
版本(四):
接受一个用户输入,判断这个输入是否可以作为变量
可以作为变量的条件
(1)大小写字母都可以
(2)字母中间可以有数字,但是不能以数字开头
(3)特殊字符除了“_ ”其他都不可以作为变量
例如:
[root@localhost hushuai]# bash 22.sh
Input:1dsf
Name is not
[root@localhost hushuai]# bash 22.sh
Input:=ewr
Name is not
[root@localhost hushuai]# bash 22.sh
Input:_
Name is ok
[root@localhost hushuai]# bash 22.sh
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 fi
版本一替换后还要统计个数,很麻烦,我们直接替换成空不就好了吗?在版本(一)基础上的修改
版本(二)
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 fi
这是一种方法因为写了正则,所以比较简单,其实我们还可以一个字母一个字母来比较
例如:版本(三)
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"上面所有的一切只是提供一种思路和方法;一定要学会在一个问题上多研究研究,其实如果你知道一个命令的话还有另外一种方法
命令: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" fi
相关文章推荐
- shell 如何判断用户从键盘输入的变量是否为数字
- shell脚本--判断用户的的输入内容
- 通过为真死循环来判断用户输入的变量,如果不符合则提示用户继续输入
- Shell脚本中判断输入变量或者参数是否为空的方法
- Shell脚本中判断输入变量或者参数是否为空的方法
- shell 脚本编程学习(二) 变量,用户输入,参数
- shell判断输入变量或者参数是否为空
- 对用户输入的判断的shell实现代码
- 对用户输入的判断的shell实现代码
- shell判断输入变量或者参数是否为空
- 【Linux】shell---判断用户输入的是否为文件
- 提示用户通过键盘输入一个用户名,来判断这个用户是否存在,如果存在就显示一下用户默认的shell
- 提示用户输入一个用户名,判断是否存在,如果存在显示该用户的shell
- Shell脚本中判断输入变量或者参数是否为空的方法
- shell整理(41)====判断输入是不是ip
- Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载
- shell切换用户EOF下变量的使用[: ==: unary operator expected
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- shell中的条件判断、参数以及变量替换
- axure8实现登录界面包含加载登录动画,用户密码输入值的判断