Shell标准输入输出和错误

Posted 喝茶等下班

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell标准输入输出和错误相关的知识,希望对你有一定的参考价值。

1.

&>word 和>&word 等价于 >word 2>&1


2.

read 命令从标准输入读取,并把输入的内容复制给变量。

命令格式: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

-e  在一个交互 shell 中使用 readline 获取行

-r  不允许反斜杠转义任何字符

-s  隐藏输入

-a array  保存为数组,元素以空格分隔

-d delimiter  持续读取直到遇到 delimiter 第一个字符退出

-n nchars  读取 nchars 个字符返回,而不是等到换行符

-p prompt  提示信息

-t timeout  等待超时时间,秒

-u fd  指定文件描述符号码作为输入,默认是 0

name  变量名


获取用户输入保存到变量:
# read -p "Please input your name: " VAR
Please input your name: lizhenliang
# echo $VAR
lizhenliang
用户输入保存为数组:
# read -p "Please input your name: " -a ARRAY
Please input your name: a b c # echo $ARRAY[*]
a b c
遇到 e 字符返回:
# read -d e VAR
123
456
e# echo $VAR
123 456
从文件作为 read 标准输入:
# cat a.txt
adfasfd
# read VAR < a.txt
# echo $VAR
adfasfd
while 循环读取每一行作为 read 的标准输入:
# cat a.txt |while read LINE; do echo $LINE; done
123
abc
分别变量赋值:
# read a b c 1 2 3 # echo $a
1# echo $b
2# echo $c
3# echo 1 2 3 | while read a b c;do echo "$a $b $c"; done
1 2 3


以上是关于Shell标准输入输出和错误的主要内容,如果未能解决你的问题,请参考以下文章

Linux shell编程:管道和重定向

Shell 环境中的输入输出重定向

第六章 Shell标准输入输出和错误

Shell 标准输入输出和错误

Shell标准输入输出和错误

shell脚本中常见的标准输入标准输出标准错误重定向详解