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标准输入输出和错误的主要内容,如果未能解决你的问题,请参考以下文章