命令:read笔记

71 阅读2分钟

本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路

命令:read

简介:文章前半部分记录了read命令的常见参数和使用方式、部分实例;后半部分简单写了一个通过read命令输入一个IP,并判断是否为正确的IP地址格式
用途:交互模式从输入读取变量参数

常用参数:
-p 指定提示符;提示信息
-n 设定允许输入的字符串长度
-s 隐藏模式,交互模式中的输入不可见
-t 指定超时时间,单位s

举例: ================以下是脚本内容=====================

#!/bin/bash
#
echo -n "Enter your name: "
read name
echo $name
#
#参数p   提示信息
read -p "p_Enter your name: " pname
echo $pname
#
#
#参数t   设置超时时间
read -t 8 -p "t_Enter your name: " tpname
echo $tpname
#
#
#读取多个变量
read -p "p_Enter your name: " manyname1 manyname2
echo $manyname1
echo $manyname2
#
#
# 隐藏模式
read -s -p "s_Enter your password: " password
#echo -e "\n"
echo ${password}666
#
#
#设定允许输入的字符串长度
read -n 4 -p "n_Enter your name: " nname
echo $nname

================以上是脚本内容===================== 脚本执行结果

[root@test read]# . ./read.sh 
Enter your name: echo_n
echo_n
p_Enter your name: read_p
read_p
t_Enter your name: read_t
read_t
p_Enter your name: var1 var2
var1
var2
s_Enter your password: yincangmoshi666
n_Enter your name: 44444444

通过read命令输入一个ip地址,并判断是否合法 #!/bin/bash read -p "请输入一个IP地址:" num if [[ num= [09]1,3[˙09]1,3[˙09]1,3[˙09]1,3num =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ]]; then #if [[ num =~ ^[0-9]{1,3}\. ]];then #echo numa=echonum a=`echo num|awk -F. '{print 1}'` b=`echo num|awk -F. '{print 2}'` c=`echo num|awk -F. '{print 3}'` d=`echo num|awk -F. '{print 4}'` #echo a bb c dif[d if [ a -ge 0 ] && [ a -le 255 ] && [ b -ge 0 ] && [ b -le 255 ] && [ c -ge 0 ] && [ c -le 255 ] &&[ d -ge 0 ] && [ dle255];thenechod -le 255 ]; then echo num else echo "ip error2" fi else echo "ip error" fi

#!/bin/bash
read -p "请输入一个IP地址:" num
if [[ $num =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
then
#if [[ $num =~ ^[0-9]{1,3}\.$ ]];then
#echo $num
a=`echo $num|awk -F. '{print $1}'`
b=`echo $num|awk -F. '{print $2}'`
c=`echo $num|awk -F. '{print $3}'`
d=`echo $num|awk -F. '{print $4}'`
#echo $a $b $c $d
if [ $a -ge 0 ] && [ $a -le 255 ] && [ $b -ge 0 ] && [ $b -le 255 ] && [ $c -ge 0 ] && [ $c -le 255 ] &&[ $d -ge 0 ] && [ $d -le 255 ];
then
echo $num
else
echo "ip error2"
fi
else
echo "ip error"
fi




============================================================
批量判断IP地址是否合法

#!/bin/bash
for num in `cat allip.txt|tr -cd '[.0-9\n]'|sort -u`
do
if [[ $num =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
    then
        a=`echo $num|awk -F. '{print $1}'`
        b=`echo $num|awk -F. '{print $2}'`
        c=`echo $num|awk -F. '{print $3}'`
        d=`echo $num|awk -F. '{print $4}'`
       #echo $a $b $c $d
            if [ $a -ge 0 ] && [ $a -le 255 ] && [ $b -ge 0 ] && [ $b -le 255 ] && [ $c -ge 0 ] && [ $c -le 255 ] &&[ $d -ge 0 ] && [ $d -le 255 ];
                then
                    echo $num
                else
                    echo "ip error2"
            fi
else
echo "ip error"
fi
done

============================================================ 批量判断IP地址是否合法

#!/bin/bash
for num in `cat allip.txt|tr -cd '[.0-9\n]'|sort -u`
do
if [[ $num =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
    then
        a=`echo $num|awk -F. '{print $1}'`
        b=`echo $num|awk -F. '{print $2}'`
        c=`echo $num|awk -F. '{print $3}'`
        d=`echo $num|awk -F. '{print $4}'`
       #echo $a $b $c $d
            if [ $a -ge 0 ] && [ $a -le 255 ] && [ $b -ge 0 ] && [ $b -le 255 ] && [ $c -ge 0 ] && [ $c -le 255 ] &&[ $d -ge 0 ] && [ $d -le 255 ];
                then
                    echo $num
                else
                    echo "ip error2"
            fi
else
echo "ip error"
fi
done