各位看官,咱们前几回主要说了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
各位看官,脚本输入的内容,今天就说到这里,欲知后事如何,且听下回分解。