Chinaunix首页 | 论坛 | 博客
  • 博客访问: 503607
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类:

2012-10-11 09:24:47

原文地址:shell read详解 作者:ubuntuer

先贴段man出来的东东^_^,难得看e文不要紧,我后面实例说明
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
    One  line  is  read  from  the  standard input, or from the file descriptor fd supplied as an argument to the -u option, and  the first word is assigned to the first name, the second word to the second name, and so on, with leftover words and their  intervening  separators  assigned  to the last name.  If there are fewer words read from the input stream than names, the remaining names are  assigned  empty  values.  The characters in IFS are used to split the line into words.  The backslash character (\)  may  be used  to  remove any special meaning for the next character read and for line continuation.  Options, if supplied, have the  following meanings:
    -a aname
    The words are assigned to sequential indices of the array variable aname, starting at 0.  aname is unset before any new  values  are  assigned.   Other  name  arguments  are ignored.
    -d delim
    The first character of delim is  used  to  terminate  the input line, rather than newline.
    -e     If the standard input is coming from a terminal, readline (see READLINE above) is used to obtain the line.
    -n nchars
    read returns after reading nchars characters rather  than waiting for a complete line of input.
    -p prompt
    Display prompt on standard error, without a trailing newline, before attempting to read any input.  The prompt is displayed only if input is coming from a terminal.
   -r     Backslash does not act as an escape character.  The backslash is considered to be part of the line.  In  particular,  a  backslash-newline pair may not be used as a line continuation.
   -s     Silent mode.  If input is coming from a terminal, characters are not echoed.
   -t timeout
   Cause  read  to time out and return failure if a complete line of input is not read within timeout  seconds.  This option  has  no  effect if read is not reading input from the terminal or a pipe.
    -u fd  Read input from file descriptor fd.

    If no names are supplied, the line read is assigned to the ariable  REPLY.   The  return  code  is zero, unless end-of-file is ncountered, read times out, or an invalid  file  descriptor  is supplied as the argument to -u.

zj@zj:~$ read -p "how old r y?" age
how old r y?10
zj@zj:~$ echo $age
10

-p没什么.

zj@zj:~$ read -p "some world?" -a words
some world?hello zj ubuntuer
zj@zj:~$ echo ${words[1]}
zj
zj@zj:~$ echo ${words[0]}
hello
-a 就是把输入赋给数组.

zj@zj:~$ read -p "Password:" -s passwd
Password:zj@zj:~$ echo $passwd
123456

-s就像我们输passwd的时候,没有回显,但是程序是认识的


zj@zj:~$ read -t 5 auth

-t就是计时了哦,5s后就退出了


zj@zj:~$ read -n 1 key
1

-n 1就是只读一个字符

zj@zj:~$ read -dq -p "input st end with q:" menu
a

b

q

-dq就是输入q的时候退出

zj@zj:~$ read a b c
1 2 3
zj@zj:~$ echo $a $b $c
1 2 3

while read -u3 i && read -u4 j;do
echo $i $j
done 3-u是指定fd.
好了,大致上就这么多了,其它的你自己man read了哦^_^



阅读(357) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~