0%

Linux之输入输出重定向

本文介绍Linux中常用的输入/输出重定向

abstract.png

输出重定向

使用 > 可以将命令结果输出结果重定向到文件。需要注意的是,如果文件不存在,将会自动创建;如果文件已存在,则文件中此前存在的任何内容都会被覆盖掉

1
2
# 将命令结果输出 重定向 到文件,覆盖写入
command > file

figure 1.png

使用 >> 可以将命令结果输出结果重定向到文件。需要注意的是,如果文件不存在,将会自动创建;如果文件已存在,则会以追加的方式从文件末尾开始写入

1
2
# 将命令结果输出 重定向 到文件,追加写入
command >> file

figure 2.png

输入重定向

使用 < 可以让命令从文件读取输入,而不是通过键盘输入的方式进行读取。

1
2
# 命令从指定文件读取输入
command < file

下述结果表示wc命令从指定文件读取输入统计行数、单词数、字节数

figure 3.png

对于输入重定向而言,还可以使用 << 进行内联输入重定向。通过这种方式,我们可以不用从文件中读取输入数据,而是通过键盘输入数据。语法如下所示,我们指定delimiter来划分输入数据的起止。其会将两个delimiter之间的内容作为输入传递给command

1
2
3
command << delimiter
input data
delimiter

figure 4.png

也可以在Shell脚本中使用内联输入重定向。需要注意的是在和命令替换进行组合使用时,命令替换的语法最好单独一行,避免执行发生意外。示例脚本InlineInputRedirect.sh如下所示

1
2
3
4
5
6
7
8
9
10
#!/usr/local/bin/zsh
# 内联重定向

res=`
wc << bye
This a demo
My name is Aaron
bye
`
echo "res is $res"

figure 5.png

参考文献

  1. Linux命令行与shell脚本编程大全·第4版 Richard Blum、Christine Bresnahan著
请我喝杯咖啡捏~

欢迎关注我的微信公众号:青灯抽丝