Linux程序设计(Linux shell编程十)


各位看官,咱们前几回主要说了Linux shell编程中的函数,这一回呢,咱们开始说新的话题:脚本的

输入和输出。闲话休提,言归正转。


脚本输入:咱们这里说的脚本输入主要指脚本如何读取用户输入的内容。例如,你在终端中输入了一行内

容,把这些内容从终端中读取到脚本中就是咱们今天要说的脚本输入。脚本输入主要通过read命令实现。


read 选项 参数。选项和参数都可有可无。

没有选项时:read val表示把终端中的内容读取到变量val中。

没有选项和参数时:read表示把终端中的内容读取到默认的变量REPLY中。


read加上选项后,可以实现多种风格的读取方式。看官莫急,咱们在下面依次介绍:

选项n: read -n num val.从终端中读取num个字符,并且存放到变量val中。

选项s: read -s val.从终端中以没有回显的方式读取内容,并且存放到变量val中.常用来读取密码。

选项p: read -p "notice" val从终端中边提示,边读取内容到变量val中。

选项t: read -t time val.将time时间(默认为秒)内,在终端中输入的内容读取到val中。如果在

        time时间内输入内容了,命令返回0,如果time内没有输入任何内容,那么命令返回非0值。因此

        该操作经常用来判断是否超过的操作。

选项d:read -d "char" val.从终端中读取内容到变量val中,直到遇到char为止。


各位看官们,咱们举个例子来说明脚本输入的用法。

#! /bin/bash

echo "-----------------the starting line of shell-----------------"

echo "sample of read :no option"
echo "please input the value"
read val
echo "Result is:$val"

echo "sample of read :no option and no parameter"
echo "please input the value"
read
echo "Result is:$REPLY"

echo "sample of read : option n"
echo "please input the value"
read -n 3 val
echo
echo "Result is:$val"

echo "sample of read : option s"
echo "please input the value"
read -s val
echo
echo "Result is:$val"

echo "sample of read : option p"
read -p "please input the value:" val
echo "Result is:$val"

echo "sample of read : option t"
echo "please input the value"
if read -t 3 val
then
    echo "Result is:$val"
else
    echo "time is over 3s"
fi

echo "sample of read : option d"
echo "please input the value"
read -d "#" val
echo
echo "Result is:$val"

echo "-----------------the ending line of shell-----------------"

新建立一个名叫t1.sh的脚本文件,把上面的内容输入到文件中,保存后,给文件加上执行权限,然后在

终端中运行该文件,并用依据程序提示输入内容得到以下结果:


-----------------the starting line of shell-----------------

sample of read :no option

please input the value

hello

Result is:hello

sample of read :no option and no parameter

please input the value

hello

Result is:hello

sample of read : option n

please input the value

hel

Result is:hel

sample of read : option s

please input the value


Result is:hello

sample of read : option p

please input the value:hello

Result is:hello

sample of read : option t

please input the value

he

Result is:he

sample of read : option d

please input the value

hello#

Result is:hello

-----------------the ending line of shell-----------------


看官们,通过看程序运行的结果,有些小的细节,不知道你们有没有发现?

在测试选项n的时候,只能输入n个字符。

在测试选项p的时候,提示的内容和输入的内容在一行。

在测试选项t时,如果没有超时会有正确的显示,如果超时还没有输入会提示超时。

在测试选项d时,遇到d的内容就停止了,而且d不会被读入到变量中。

除去选项t外,其它的选项,都没有读入换行符,因此代码中有手动的换行操作:echo


各位看官,脚本输入的内容,今天就说到这里,欲知后事如何,且听下回分解。

你可能感兴趣的:(Linux程序设计)