该章节主要讲解,通过read命令实现脚本交互功能。
Demo46源码如下:


#!/bin/bash
#默读与文件读取
cunt=1
read -p "用户名:" username
read -s -p "用户密码:" pass
while [ cunt -eq 1 ]
do
if [pass = "weltest" ]
then
   echo -e "\nusername登录成功.....\n"
   if read -t 20 -p "对两个操作数求和:" one two
   then
   #把操作数与零求和
   #1>/dev/null表示标准输出重定向到空设备文件,也就是不输出任何信息到终端
   expr{one} + 0 1>/dev/null 2>&1
   #如果上一条名执行成功,?的状态位0,说明操作数是数字
   if [? -eq 0 ]
     then 
    expr {two} + 0 1>/dev/null 2>&1        if [? -eq 0 ]
        then
            echo  "one+two=[one + two ]"
        else
        echo "one+two="one" two"
        fi
    else
         echo "one+two="one" two"
   fi
   else
       echo -e "\n输入超时!\n"
       continue
   fi
else
   echo "密码输入错误!"
   num=1
   #显示Demo45的前3行信息,并对读取这些信息
   head -n 3 Demo45 | while read line
   do
     echo "Line #num:line"
     num=[ $num+1 ]
   done
   break
fi 
done

Demo45脚本源码

#!/bin/bash
#read -t -p选项对输入进行计时
if read -t 10 -p "在10秒内输入用户名:" username
then
  echo -e "你好,username,欢迎来到weltest!\n"
else
  echo -e "输入超时,请在10秒内输入完成...\n"
fi

#read -n num -p选项对输入字符进行计数
echo -e "Do you want to  continue?(Y/N)\n"
read -n 1 answer
caseanswer in
Y | y) echo -e "\nFine,continue to input...\n";;
N | n) echo -e "\nOK,good bye!\n";;
*) echo -e "\nInput the $answer illegal characters!\n";;
esac

1 对 “Shell脚本之read命令的操作示例”的想法;

发表评论

电子邮件地址不会被公开。