每个进程默认打开3个文件描述符:
stdin
标准输入,在终端输入从命令行读取数据,文件描述符为0,文件描述符可以理解为文件idstdout
标准输出,在终端读出,向命令行输出数据,文件描述符为1stderr
标准错误输出,向命令行输出数据,文件描述符为2
本来要输入到终端里的stdout
,重定向到指定文件中,若文件不存在,自动创建
命令 | 说明 |
---|---|
command > file |
将这条命令的stdout 重定向到file中,覆盖 |
command < file |
将stdin 重定向到file中,覆盖 |
command >> file |
将stdout 以追加方式重定向到file中,不覆盖 |
command n> file |
将文件描述符n重定向到file中(一般不用) |
command n>> file |
将文件描述符n以追加方式重定向到file中 |
输入和输出重定向,在终端
echo -e "Hello \c" > output.txt # 将stdout重定向到output.txt中
echo "World" >> output.txt # 将world追加到output.txt中
read str < output.txt # 从output.txt中读取字符串
echo $str # 输出结果:Hello World
输入和输出重定向
创建test脚本计算a+b
read a
read b
echo `expr $a + $b`
终端
vim test
chmod +x test //加访问权限
vim input.txt //定义输入脚本,在里面输入3 4
./test < input.txt > output.txt //从input.txt中取值到test中,计算的结果传入Output中
cat output.txt //输出结果:7