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