4.3.3 默读与文件读取
有时候需要脚本用户进行输入,但不希望输入的数据显示在显示器上。-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成了与背景相同的颜色)。
read命令还可以读取Linux相同上存储在文件中的数据。每调用一次read命令,都会读取文件中的一行文本。当文件中没有可读的行时,read命令将以非零状态退出。读取文件的关键是如何将文件中的数据传送给read命令。最常用的方法是对文件使用cat命令并通过管道将结果直接传给包含read命令的while命令。
默读与文件读取操作实例如下:
#!/bin/bash
#默读与文件读取
cunt=1
read -p "用户名:" username
read -s -p "用户密码:" pass
while [ $cunt -eq 1 ]
do
if [ $pass = "ewang123" ]
then
   echo -e "\n$username登录成功.....\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

                










