码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2017-09-25 19:10:56      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:shell  心得   思考

(一)题目:

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

可以作为变量的条件

(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


本文出自 “IT生活” 博客,谢绝转载!

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

标签:shell  心得   思考

原文地址:http://dingxue.blog.51cto.com/12290895/1968420

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!